Part Number Hot Search : 
VBO13 3SMC48CA ML6698CQ CXD117 DG411 KBU410 70NM60 AA4995
Product Description
Full Text Search
 

To Download 101-0500 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
 MiniCom (OP6800)
C-Programmable Operator Interface
User's Manual
019-0106 * 090529-G
MiniCom (OP6800) User's Manual
Part Number 019-0106 * 090529-G * Printed in U.S.A. (c)2002-2009 Digi International Inc. * All rights reserved. No part of the contents of this manual may be reproduced or transmitted in any form or by any means without the express written permission of Digi International. Permission is granted to make one or more copies as long as the copyright page contained therein is included. These copies of the manuals may not be let or sold for any reason without the express written permission of Digi International. Digi International reserves the right to make changes and improvements to its products without providing notice.
Trademarks
Rabbit and Dynamic C are registered trademarks of Digi International Inc. Rabbit 2000 and RabbitCore are trademarks of Digi International Inc.
The latest revision of this manual is available on the Rabbit Web site, www.rabbit.com, for free, unregistered download.
Digi International Inc.
www.rabbit.com
MiniCom (OP6800)
TABLE OF CONTENTS
Chapter 1. Introduction
1
1.1 Description............................................................................................................................................1 1.2 Features .................................................................................................................................................1 1.3 Development and Evaluation Tools......................................................................................................2 1.3.1 Tool Kit .........................................................................................................................................2 1.3.2 Software ........................................................................................................................................3 1.4 CE Compliance .....................................................................................................................................4 1.4.1 Design Guidelines .........................................................................................................................5 1.4.2 Interfacing the OP6800 to Other Devices .....................................................................................5
Chapter 2. Getting Started
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8
7
Connections ..........................................................................................................................................7 Demonstration Program on Power-Up ...............................................................................................10 Display Contrast Adjustment..............................................................................................................10 Programming Cable Connections .......................................................................................................11 Installing Dynamic C ..........................................................................................................................12 Starting Dynamic C ............................................................................................................................12 PONG.C ..............................................................................................................................................13 Where Do I Go From Here? ...............................................................................................................13
Chapter 3. Subsystems
15
3.1 Pinouts ................................................................................................................................................16 3.2 Digital I/O ...........................................................................................................................................17 3.2.1 Digital Inputs...............................................................................................................................17 3.2.2 Digital Outputs............................................................................................................................18 3.3 Serial Communication ........................................................................................................................19 3.3.1 RS-232 ........................................................................................................................................19 3.3.2 RS-485 ........................................................................................................................................19 3.3.3 Programming Port .......................................................................................................................21 3.3.4 Ethernet Port (OP6800 models only) ..........................................................................................22 3.4 Programming Cable ............................................................................................................................23 3.4.1 Changing Between Program Mode and Run Mode ....................................................................23 3.5 Other Hardware...................................................................................................................................24 3.5.1 Clock Doubler .............................................................................................................................24 3.5.2 Spectrum Spreader ......................................................................................................................25 3.6 Memory...............................................................................................................................................26 3.6.1 SRAM .........................................................................................................................................26 3.6.2 Flash Memory .............................................................................................................................26 3.7 Keypad Labeling.................................................................................................................................27
Chapter 4. Software
29
4.1 Upgrading Dynamic C ........................................................................................................................31 4.1.1 Patches and Bug Fixes ................................................................................................................31 4.1.2 Upgrades .....................................................................................................................................31 4.2 Font and Bitmap Converter.................................................................................................................32
User's Manual
4.3 Sample Programs................................................................................................................................ 33 4.3.1 Board ID ..................................................................................................................................... 33 4.3.2 Demonstration Board.................................................................................................................. 33 4.3.3 Digital I/O................................................................................................................................... 34 4.3.4 Serial Communication ................................................................................................................ 34 4.3.5 LCD/Keypad Module Sample Programs.................................................................................... 34 4.3.6 TCP/IP Sample Programs........................................................................................................... 35 4.4 OP6800 Libraries ............................................................................................................................... 36
Chapter 5. Using the TCP/IP Features
37
5.1 TCP/IP Connections ........................................................................................................................... 37 5.2 TCP/IP Sample Programs................................................................................................................... 39 5.2.1 How to Set IP Addresses in the Sample Programs..................................................................... 39 5.2.2 How to Set Up Your Computer for Direct Connect ................................................................... 40 5.2.3 Run the PINGME.C Demo......................................................................................................... 41 5.2.4 Running More Demo Programs With a Direct Connection ....................................................... 41 5.2.5 LCD/Keypad Sample Programs Showing TCP/IP Features ...................................................... 42 5.3 Where Do I Go From Here? ............................................................................................................... 43
Chapter 6. Installation and Mounting Guidelines
45
6.1 Installation Guidelines........................................................................................................................ 45 6.2 Mounting Instructions ........................................................................................................................ 46 6.2.1 Bezel-Mount Installation ............................................................................................................ 46
Appendix A. Specifications
A.1 A.2 A.3 A.4 A.5
49
Electrical and Mechanical Specifications.......................................................................................... 50 Conformal Coating ............................................................................................................................ 53 Jumper Configurations ...................................................................................................................... 54 Use of Rabbit 2000 Parallel Ports ..................................................................................................... 55 I/O Address Assignments.................................................................................................................. 57
Appendix B. Power Supply
59
B.1 Power Supplies .................................................................................................................................. 59 B.2 Batteries and External Battery Connections...................................................................................... 60 B.2.1 Battery-Backup Circuit .............................................................................................................. 60 B.2.2 Power to VRAM Switch ............................................................................................................ 61 B.2.3 Reset Generator.......................................................................................................................... 61 B.3 Chip Select Circuit............................................................................................................................. 62
Appendix C. Demonstration Board
63
C.1 Mechanical Dimensions and Layout ................................................................................................. 64 C.2 Power Supply..................................................................................................................................... 65 C.3 Using the Demonstration Board ........................................................................................................ 67
Appendix D. OP6800 Function Calls
71
D.1 Board Initialization (OP68xx.LIB).................................................................................................... 72 D.2 Digital I/O (OP68xx.LIB) ................................................................................................................. 73 D.3 Serial Communication (OP68xx.LIB)............................................................................................... 74 D.4 LEDs (OP68xx.LIB) ......................................................................................................................... 76 D.5 LCD Display...................................................................................................................................... 77 D.5.1 Keypad....................................................................................................................................... 97
Index Schematics
101 105
MiniCom (OP6800)
1. INTRODUCTION
The OP6800 intelligent terminal interface is a small, highperformance, C-programmable terminal interface that offers built-in I/O and Ethernet connectivity. A Rabbit(R) 2000 microprocessor operating at 22.1 MHz provides fast data processing. 1.1 Description
The OP6800 intelligent terminal interface incorporates the powerful Rabbit 2000 microprocessor, flash memory, static RAM, digital I/O ports, RS-232/RS-485 serial ports, and a 10Base-T Ethernet port.
1.2 Features
* 122 x 32 graphic display. * 7-key keypad. * 7 LEDs. * 24 digital I/O: 13 filtered digital inputs, and 11 sinking high-current outputs (7 outputs with LED indicators, and 4 high-current digital outputs with transient protection to drive inductive loads). * Rabbit 2000 microprocessor operating at 22.1 MHz. * 128K static RAM and 256K flash memory standard, may be increased to 512K SRAM and 512K flash memory. * One RJ-45 Ethernet port compliant with IEEE 802.3 standard for 10Base-T Ethernet protocol (OP6800 only). * Four serial ports (2 RS-232 or 1 RS-232 with RTS/CTS, 1 RS-485, and 1 CMOS-compatible programming port). * Battery-backable real-time clock, connection point for external battery included. * Watchdog. * Reset generator. * Meets NEMA 4 watertightness specifications when front-panel mounted. * Remote program downloading and debugging capability via RabbitLink.
User's Manual 1
Two OP6800 models are available. Their standard features are summarized in Table 1.
Table 1. OP6800 Models
Feature Microprocessor Static RAM Flash Memory RJ-45 Ethernet Connector and Filter Capacitors RabbitCore Module Used Yes RCM2200 OP6800 OP6810
Rabbit 2000 running at 22.1 MHz 128K 256K No RCM2300
One additional 512K flash/512K SRAM memory option is available for custom orders, and involves nominal lead times. Contact your Rabbit sales representative or authorized distributor for more information. Throughout this manual, the term OP6800 refers to the complete series of OP6800 operator interfaces unless other production models are referred to specifically. Appendix A provides detailed specifications. Visit our Web site for up-to-date information about additional add-ons and features as they become available. The Web site also has the latest revision of this user's manual.
1.3 Development and Evaluation Tools
1.3.1 Tool Kit A Tool Kit contains the hardware essentials you will need to use your OP6800. The items in the Tool Kit and their use are as follows. * Dynamic C CD-ROM, with complete product documentation on disk. * OP6800 Getting Started instructions. * Programming cable, used to connect your PC serial port to the OP6800. * Universal AC adapter, 12 V DC, 1 A (includes Canada/Japan/U.S., Australia/N.Z., U.K., and European style plugs). * Demonstration Board with prototyping area, pushbutton switches, and LEDs. The Demonstration Board can be hooked up to the OP6800 to demonstrate the I/O, and the prototyping area can be used for custom circuits. * Ribbon cable to connect Demonstration Board to OP6800. * Screwdriver. * Rabbit 2000 Processor Easy Reference poster. * Registration card.
2 MiniCom (OP6800)
DIAG
Programming Cable
Universal AC Adapter with Plugs
PROG
Demonstration Board Screwdriver Ribbon Cable
VBAT IN16 IN14 IN12 IN10 IN08 IN06 IN04 IN02 IN00 +RAW OUT10 OUT08 OUT06 OUT04 OUT02 OUT00 RxB RxC 485 +485 TxC TxB GND +K OUT09 OUT07 OUT03 OUT01 OUT05 GND IN01 IN03 IN05 IN07 IN09 IN13 IN11
IN17 IN15
0V +5 V
0V
0V +5 V GND
The OP6800 is a low-cost, C-programmable operator interface and single-board computer that offers Ethernet connectivity, plenty of industrialized I/O, a graphic LCD, and keypad. These Getting Started instructions included with the Tool Kit will help you get your OP6800 up and running so that you can run the sample programs to explore its capabilities and develop your own applications.
LS1
+5 V GND
GND
Buzzer
JP 1 S2
Tool Kit Contents
The OP6800 Tool Kit contains the following items:
C1
* Dynamic C CD-ROM, with complete product documentation on disk. * OP6800 Demonstration Board. * Standoffs for Demonstration Board. * Ribbon cable to connect Demonstration Board to OP6800. * Programming cable, used to connect your PC serial port to the OP6800. * Universal AC adapter, 12 V DC, 1 A (includes Canada/Japan/U.S., Australia/N.Z., U.K., and European style plugs). * Screwdriver. * Getting Started instructions. * Rabbit 2000 Processor Easy Reference poster. * Registration card.
Visit our online Rabbit store at www.rabbit.com/store/ for the latest information on peripherals and accessories that are available for the OP6800 operator interface.
C2
+5 V GND
GND +5 V +RAW +RAW +K +K
GND +5 V
J3 J6
GND +RAW TxB RxB TxC RxC + RS485 +K
J11
J5
OUT10 OUT09 OUT08 OUT07 OUT06 OUT05 OUT04 OUT03 OUT02 OUT01 OUT00
J7
Step 1 -- Install Dynamic C(R)
Before doing any development, you must install Dynamic C. Insert the CD from the Development Kit in your PC's CD-ROM drive. If the installation does not auto-start, run the setup.exe program in the root directory of the Dynamic C CD. Install any Dynamic C modules after you install Dynamic C.
Rabbit and Dynamic C are registered trademarks of Digi International Inc.
Getting Started Instructions
Demonstration Board
Figure 1. OP6800 Tool Kit
1.3.2 Software The OP6800 is programmed using version 7.06 or later of Rabbit's Dynamic C. A compatible version is included on the Tool Kit CD-ROM. Library functions provide an easy-to-use interface for the OP6800. Software drivers for the display and keypad, TCP/IP, I/O, and serial communication are included with Dynamic C. Dynamic C v. 9.60 includes the popular C/OS-II real-time operating system, point-topoint protocol (PPP), FAT file system, RabbitWeb, and other select libraries that were previously sold as individual Dynamic C modules. Rabbit also offers for purchase the Rabbit Embedded Security Pack featuring the Secure Sockets Layer (SSL) and a specific Advanced Encryption Standard (AES) library. In addition to the Web-based technical support included at no extra charge, a one-year telephonebased technical support subscription is also available for purchase. Visit our Web site at www.rabbit.com for further information and complete documentation, or contact your Rabbit sales representative or authorized distributor.
User's Manual
DS 4
J1
DS 3
C3
DS 2
DS 1
1 3 HOT!
RP
1
S1
U1
S3
S4
J10
J2
MiniCom (OP6800)
J8
IN00
IN01
IN02
IN03
IN04
IN05
IN06
IN07
IN08
IN09
IN10
IN11
IN12
J4
IN13
IN14
IN15
IN16
IN17
VBAT
0V
3
1.4 CE Compliance
Equipment is generally divided into two classes.
CLASS A Digital equipment meant for light industrial use Less restrictive emissions requirement: less than 40 dB V/m at 10 m (40 dB relative to 1 V/m) or 300 V/m CLASS B Digital equipment meant for home use More restrictive emissions requirement: 30 dB V/m at 10 m or 100 V/m
These limits apply over the range of 30-230 MHz. The limits are 7 dB higher for frequencies above 230 MHz. Although the test range goes to 1 GHz, the emissions from Rabbit-based systems at frequencies above 300 MHz are generally well below background noise levels. The OP6800 has been tested and was found to be in conformity with the following applicable immunity and emission standards. The OP6810 is also CE qualified as it is a sub-version of the OP6800. Boards that are CE-compliant have the CE mark.
NOTE: Earlier versions of the OP6800 sold before 2003 that do not have the CE mark are not CE-complaint.
Immunity The OP6800 operator interfaces meet the following EN55024/1998 immunity standards. * EN61000-4-2 (ESD) * EN61000-4-3 (Radiated Immunity) * EN61000-4-4 (EFT) * EN61000-4-6 (Conducted Immunity) Additional shielding or filtering may be required for a heavy industrial environment. Emissions The OP6800 operator interfaces meet the following emission standards emission standards with the Rabbit 2000 spectrum spreader turned on and set to the normal mode. The spectrum spreader is only available with Rev. C or higher of the Rabbit 2000 microprocessor. This microprocessor is used on the OP6800 operator control panels that carry the CE mark. * EN55022:1998 Class B * FCC Part 15 Class B Your results may vary, depending on your application, so additional shielding or filtering may be needed to maintain the Class B emission qualification.
4
MiniCom (OP6800)
1.4.1 Design Guidelines Note the following requirements for incorporating the OP6800 operator interfaces into your application to comply with CE requirements. General * The power supply provided with the Tool Kit is for development purposes only. It is the customer's responsibility to provide a CE-compliant power supply for the end-product application. * When connecting the OP6800 to outdoor cables, the customer is responsible for providing CE-approved surge/lightning protection. * Rabbit recommends placing digital I/O or analog cables that are 3 m or longer in a metal conduit to assist in maintaining CE compliance and to conform to good cable design practices. Rabbit also recommends using properly shielded I/O cables in noisy electromagnetic environments. * While the OP6800 meets the EN61000-4-2 (ESD) requirements in that it can withstand contact discharges of 4 kV and air discharges of 8 kV, it is the responsibility of the end-user to use proper ESD precautions to prevent ESD damage when installing or servicing the OP6800. Safety * For personal safety, all inputs and outputs to and from the OP6800 must not be connected to voltages exceeding SELV levels (42.4 V AC peak, or 60 V DC). Damage to the Rabbit 2000 microprocessor may result if voltages outside the design range of 0 V to 40 V DC are applied directly to any of its digital inputs. * The lithium backup battery circuit on the OP6800 has been designed to protect the battery from hazardous conditions such as reverse charging and excessive current flows. Do not disable the safety features of the design. 1.4.2 Interfacing the OP6800 to Other Devices Since the OP6800 operator control panels are designed to be connected to other devices, good EMC practices should be followed to ensure compliance. CE compliance is ultimately the responsibility of the integrator. Additional information, tips, and technical assistance are available from your authorized Rabbit distributor, and are also available on our Web site at www.rabbit.com.
User's Manual
5
6
MiniCom (OP6800)
2. GETTING STARTED
Chapter 2 explains how to connect the programming cable and power supply to the OP6800. Once you run a sample program to demonstrate that you have connected everything correctly, you will be ready to go on and finish developing your system. 2.1 Connections
1. Screw in the four standoffs included with the Tool Kit into the four mounting threads on the OP6800 as shown in Figure 2.
R4 LCD1
J1
485 +485
RxC
RxB
OUT00 GND
OUT02 OUT01
OUT04 OUT03
OUT06 OUT05
OUT08 OUT07
OUT10 OUT09
+RAW
IN00 GND
IN02 IN01
IN04 IN03
IN06 IN05
IN08 IN07
IN10 IN09
IN12 IN11
IN14 IN13
IN16 IN15
VBAT IN17
C1
TxC C6
TxB
+K
R3 R2 U1
C8 C9 C7 D2
C2 D3
C3
C4 D4
C5 D5
RP1
RP2
RP3
RN1
U2
C29 GND
GND
EGND
C10
C13
C11 C12
C17 R32 RP4 D6 C24
C14
C15
RP5 C16
Q2
Q4
Q3
Q1
C7
U8 U7
Q5 R13
R12
R8 RP9
C30 JP2
JP5
R10
DS2
ACT
R6
JP6
RP6 RP7
RP8
JP1
R5 C25 C26
R7
R9
C23 C22 C21 C20 C19 C18
LNK
C32
C27
C29
C1
D12
D11 D7
Q6 R14
C28
C31 C30
JP1
R11
DS1
U3
D13 R17
D8
D9 R20 Q11 R21 Q12
D10
R16
Q7
FlashQ9 R18 Q8 EPROM
R22
RT1
R19
Q10
Y2 C2
R15 R24 R25 R23 C33 R28
C28
R26
R39
C44
D1
R27
R41 R38
JP3 JP4
D3
C34
C25
J2
U2
R16
C35
R37
C14
C27
R18
U5
U3
Y3
D2 R7
U6
C45
Y1 C4 R1 C38 C17
U6
C37
R21 R22
R8
KP1
C3
R36
C36 U4
D14
C13
R29
C40
Q5 Q4 Q3
R2
C42
J1
C43 BT1 U1
J2
R13 U7 R31
R9
R15
J3
Figure 2. Screw In Standoffs Into OP6800 Mounting Threads
User's Manual
Q2
C8
R11
C12 R17
C41
R19
R20
R30
C39
7
2. Connect the OP6800 to the Demonstration Board from the Tool Kit using the ribbon cable connector as shown in Figure 3. First, connect the ribbon cable to header J1 on the OP6800, then turn the OP6800 over and connect the other end of the ribbon cable to header J1 on the Demonstration Board. By connecting the boards this way, you have the option of placing the Demonstration Board behind your OP6800 in your final installation as explained in Appendix C.
1
R6
Pin 1
R4 J1 485
J1
J2 C42
R9 C8
R2 D2 R7
C3 C27
Y2 C2
U3
D13
C1
U8 U7
Q5
C7
R36 R37
R12
RT1
R15 C12 R17 Q2 R19 Q4 R20 C13 R21 R22 R18 C14
C25
J1
0V
0V
0V +5 V GND
VBAT IN16 IN14 IN12 IN10 IN08 IN06 IN04 IN02 IN00 +RAW OUT10 OUT08 OUT06 OUT04 OUT02 OUT00 RxB RxC 485
IN17 IN15 IN13 IN11 IN09 IN07 IN05 IN03 IN01 GND +K OUT09 OUT07 OUT05 OUT03 OUT01 GND TxB TxC +485
+5 V
LS1
GND
+5 V GND
Buzzer
C1 JP1
1
C2
+5 V GND
C3
GND +5 V +RAW +RAW +K GND +5 V +K
J1
J1
J3
J11 J6
J5
GND +RAW TxB RxB TxC RxC + RS485 +K OUT10 OUT09 OUT08 OUT07 OUT06 OUT05 OUT04 OUT03 OUT02 OUT01 OUT00
J7
Figure 3. Connect the OP6800 to the Demonstration Board
8
MiniCom (OP6800)
DS4
DS3 DS2 DS1
3 HOT!
RP1
S1
U1
S2
S3
S4
J8
J10
IN00
IN01
IN02
IN03
IN04
IN05
IN06
IN07
IN08
IN09
IN10
IN11
J2
J4
IN12
IN13
IN14
IN15
IN16
IN17
VBAT
0V
IN10
IN12
IN14
IN16
VBAT
IN09
IN13
IN15
IN17
IN11
C13
RP5 C16
C24
C23 C22 C21 C20 C19 C18
C32
Q3
Q5
Y3
ACT
IN06
EGND
IN08
IN05
IN07
C14
C15
C31 C30
R16
DS2
LNK
IN02
IN04
IN01
JP6
RP6 RP7
GND
IN00
GND
IN03
C11
C12
C27
JP1
C28 D9
D5
Q4
C28
JP5
+RAW
+K
C29 GND
D4
Q3
U2
OUT10
OUT09
J2
R9
C30 JP2
R7
C43 BT1 U1
OUT06
OUT08
OUT05
OUT07
D2
D3
Q2
Q1
C26
D3
RxB
OUT00
OUT02
OUT04
OUT01
OUT03
GND
TxB
C10
Y1 C4 R1 C17 C38
R8
C6
D1
R38 R41
RxC
TxC
C7
R5
U6
LCD1 C1 R2 +485 R3 C8 C9 C2 C3 C4 C5 RP1 RP2 RP3 RN1
KP1
JP1 U1
C25
C29
R30 R11 R16
R39
R26 C44 R27
Q7 R13 R17 R18 Flash Q9 Q8 EPROM D12
U2
U5
R22JP4
D11
JP3
R13 U7 R31
R11
R29
C45 U6
D7
R8
R19
RP9
C41
U3
R25
Q10
C37
C35 C33 R28
D8
R24 R23
R20 Q11 R21
R10
J3
C34
Q12 D10
RP8
DS1
C36
U4
R15
C39 C40
Q6 R14
C17 R32 RP4 D6
D14
2
3. Connect the power supply. First, prepare the AC adapter for the country where it will be used by selecting the plug. The OP6800 Tool Kit presently includes Canada/Japan/U.S., Australia/N.Z., U.K., and European style plugs. Snap in the top of the plug assembly into the slot at the top of the AC adapter as shown in Figure 4, then press down on the spring-loaded clip below the plug assembly to allow the plug assembly to click into place. Connect the bare ends of the power supply to the +RAW and GND positions on screw terminal header J5 of the Demonstration Board as shown in Figure 4.
0V
0V
0V +5 V GND
VBAT IN16 IN14 IN12 IN10 IN08 IN06 IN04 IN02 IN00 +RAW OUT10 OUT08 OUT06 OUT04 OUT02 OUT00 RxB RxC 485
IN17 IN15 IN13 IN11 IN09 IN07 IN05 IN03 IN01 GND +K OUT09 OUT07 OUT05 OUT03 OUT01 GND TxB TxC +485
+5 V
LS1
GND
+5 V GND
Buzzer
C1 JP1
1
C2
+5 V GND
C3
GND +5 V +RAW +RAW +K GND +5 V +K
J1 J3
J11 J6
J5
J5
GND +RAW TxB RxB TxC RxC + RS485 +K OUT10 OUT09 OUT08 OUT07 OUT06 OUT05 OUT04 OUT03 OUT02 OUT01 OUT00
J7
1 2
Remove slot cover, insert tab into slot
Assemble AC Adapter
Snap plug into place
+ Red Heat-Shrink Tubing
Figure 4. Power Supply Connections
NOTE: The OP6800 itself has reverse polarity protection, but the Demonstration Board does not. Be careful to connect the positive and negative leads as shown to avoid damaging the Demonstration Board. NOTE: If you are using your own power supply, Rabbit recommends using a 9 V to 25 V DC power supply. The linear regulator on the Demonstration Board can handle up to 35 V, but can get extremely hot.
4. Apply power. Plug in the AC adapter.
CAUTION: Unplug the power supply while you make or otherwise work with the connections to the headers. This will protect your OP6800 from inadvertent shorts or power spikes. NOTE: A hardware RESET is done by unplugging the AC adapter, then plugging it back in.
User's Manual
DS4
DS3 DS2 DS1
3 HOT!
RP1
S1
U1
S2
S3
S4
J8 J10
IN00
IN01
IN02
IN03
IN04
IN05
IN06
IN07
IN08
IN09
IN10
IN11
J2
J4
IN12
IN13
IN14
IN15
IN16
IN17
VBAT
0V
9
2.2 Demonstration Program on Power-Up
A repeating sequence of graphics and messages in various languages will be displayed on the LCD, and the LEDs will flash on and off in sequence when power is first applied to the OP6800. Try pressing the buttons on the keypad. The LED immediately above that button will light up, and if you pressed one of the keys in the top row of the keypad, the corresponding LED on the Demonstration Board will light up. Similarly, if you press one of the switches on the Demonstration Board, the corresponding LED on the Demonstration Board and on the OP6800 will light up. Note that the programming cable does not have to be connected for this demonstration. This demonstration will be replaced by a new program when the programming cable is attached and the new program is compiled and run. The demonstration is available for future reference in the Dynamic C SAMPLES\LCD_KEYPAD\122x32_1x7 directory as
FUN.C.
2.3 Display Contrast Adjustment
The LCD contrast is preset at the factory. If you need to adjust the contrast for optimum display of graphics and messages, you may adjust the potentiometer at R4 located as shown in Figure 5. Note that OP6800 units sold before 2004 did not have any provision to adjust the contrast.
Contrast Adjustment
R4 LCD1 +485 C1 TxC TxB R3 R2 U1 C6 U2 C10
C7
J1
C29 GND
GND
EGND
U8 U7
ACT
Q5 R13
C30 JP2
R12
R8
JP5
R10 C27 C29
DS2
R6
JP6
JP1
485
RxC R5
RxB
OUT00 GND C7
C8 C9 D2
OUT02 OUT01 C25
OUT04 OUT03
OUT06 OUT05 C2 Q1 C26
OUT08 OUT07 D3 Q2
C3
RP9
OUT10 OUT09 D4 Q3
C4
+RAW +K R9
IN00 GND C5 D5 Q4
IN02 IN01 C11
RP6 RP7
IN04 IN03 C12
RP1
IN06 IN05 C14
RP2
RP8
IN08 IN07 C15
IN10 IN09 RP5 C16 RP3
IN12 IN11 C13
C17 R32 RP4 D6 C24
IN14 IN13
IN16 IN15
RN1
VBAT IN17
R7
C23 C22 C21 C20 C19 C18 Q6 R14
LNK
C32
C1
D12
D11 D7
C28
C31 C30
JP1
R11
DS1
U3
D13 R17
D8 R18 FlashQ9 Q8 EPROM R19 Q10 R20 Q11
D9 R21 Q12
D10
R16
Q7
Y2 C2
R15 R24 R25 R23 C33 R28
C28
R26
R39
C44
D1
R27
RT1 R41 R38 R37
R22 JP4
JP3
C34
R16
J2
D3
C35
C14
C27 D2 R7
R18
U5
U3
U2
Y3
C25
U6
C45
Y1 C4 R1 C17 C38
U6
C37
R21 R22
R8
KP1
C3
R36
C36 U4
D14
C13
R29
C40
Q5 Q4 Q3
R2
C42
J1
C43 BT1 U1
J2
R13 U7 R31
R9
R15
J3
Figure 5. LCD Contrast Adjustment
10
Q2
C8
R11
C12 R17
C41
R19
R20
R30
C39
MiniCom (OP6800)
2.4 Programming Cable Connections
1. Connect the programming cable to download programs from your PC and to program and debug the OP6800. Connect the 10-pin PROG connector of the programming cable to header J1 on the OP6800 RabbitCore module. Ensure that the colored edge lines up with pin 1 as shown. (Do not use the DIAG connector, which is used for a nonprogramming serial connection.) Connect the other end of the programming cable to a COM port on your PC. Make a note of the port to which you connect the cable, as Dynamic C will need to have this parameter configured. Note that COM1 on the PC is the default COM port used by Dynamic C.
NOTE: Some PCs now come equipped only with a USB port. It may be possible to use an RS-232/USB converter (Part No. 20-151-0178) with the programming cable supplied with the OP6800 Tool Kit. Note that not all RS-232/USB converters work with Dynamic C.
R4 LCD1
J1
485 +485
RxC
RxB
OUT00 GND
OUT02 OUT01
OUT04 OUT03
OUT06 OUT05
OUT08 OUT07
OUT10 OUT09
+RAW
IN00 GND
IN02 IN01
IN04 IN03
IN06 IN05
IN08 IN07
IN10 IN09
IN12 IN11
IN14 IN13
IN16 IN15
VBAT IN17
C1
TxC C6
TxB
+K
R3 R2 U1
C8 C9 C7 D2
C2 D3
C3
C4 D4
C5 D5
RP1
RP2
RP3
RN1
U2
U8 U7
ACT
Q5 R13
C30 JP2
R12
R8
JP5
R10 C27 C29
DS2
R6
JP6
J1
C29 GND
GND
EGND
C10
C13
C11 C12
C17 R32 RP4 D6 C24
C14
C15
RP5 C16
Q2
Q4
Q3
Q1
C7
RP6 RP7
RP8
JP1
R5 C25 C26
RP9
R7
R9
C23 C22 C21 C20 C19 C18 Q6 R14
LNK
C32
C1
D12
D11 D7
C28
C31 C30
JP1
R11
DS1
U3
D13 R17
D8 R18 FlashQ9 Q8 EPROM R19 Q10 R20 Q11
D9 R21 Q12
D10
R16
Q7
PROG
KP1
Y2 C2
R15 R24 R25 R23 C33 R28
C28
R26
R39
C44
D1
R27
RT1
R41 R38
R22 JP4
JP3
C34
R16
J2
D3
C35
R37
C14
C27
R18
U5
U3
U2
Y3
C25
D2 R7
U6
C3
R36
C36 U4
D14
C45
Y1 C4 R1 C17 C38
U6
C37
R21 R22
R8
C13
R29
C40
Q5 Q4 Q3
R2
C42
C43 BT1 U1
J2
R13 U7 R31
R9
R15
PROG
J1
J3
DIAG
Colored edge Programming Cable
NOTE: Never disconnect the programming cable by pulling on the ribbon cable. Carefully pull on the connector to remove it from the header.
Red shrink wrap
To PC COM port
Figure 6. Programming Cable Connections
NOTE: Be sure to use the programming cable (Part No. 101-0513) supplied with the OP6800 Tool Kit--the programming cable has red shrink wrap around the RS-232 converter section located in the middle of the cable. Programming cables from other Rabbit kits are not designed to work with the OP6800.
2. Reset the OP6800 by unplugging the AC adapter, then plugging it back in. The OP6800 is now ready to be used.
User's Manual 11
Q2
C8
R11
C12 R17
C41
R19
R20
R30
C39
2.5 Installing Dynamic C
If you have not yet installed Dynamic C version 7.06P2 (or a later version), do so now by inserting the Dynamic C CD in your PC's CD-ROM drive. The CD will auto-install unless you have disabled auto-install on your PC. If the CD does not auto-install, click Start > Run from the Windows Start button and browse for the Dynamic C setup.exe file on your CD drive. Click OK to begin the installation once you have selected the setup.exe file. The Dynamic C User's Manual provides detailed instructions for the installation of Dynamic C and any future upgrades.
NOTE: If you have an earlier version of Dynamic C already installed, the default installation of the later version will be in a different folder, and a separate icon will appear on your desktop.
2.6 Starting Dynamic C
Once the OP6800 is connected to your PC and to a power source, start Dynamic C by double-clicking on the Dynamic C icon on your desktop or in your Start menu. If you are using a USB port to connect your computer to the OP6800, choose Options > Project Options and select "Use USB to Serial Converter." Click OK. Dynamic C assumes, by default, that you are using serial port COM1 on your PC. If you are using COM1, then Dynamic C should detect the OP6800 and go through a sequence of steps to cold-boot the OP6800 and to compile the BIOS. If the error message "Rabbit Processor Not Detected" appears, you have probably connected to a different PC serial port such as COM2, COM3, or COM4. You can change the serial port used by Dynamic C with the OPTIONS menu, then try to get Dynamic C to recognize the OP6800 by selecting Reset Target/Compile BIOS on the Compile menu. Try the different COM ports in the OPTIONS menu until you find the one you are connected to. If you still can't get Dynamic C to recognize the target on any port, then the hookup may be wrong or the COM port might not working on your PC. If you receive the "BIOS successfully compiled ..." message after pressing or starting Dynamic C, and this message is followed by a communications error message, it is possible that your PC cannot handle the 115,200 bps baud rate. Try changing the baud rate to 57,600 bps as follows. * Locate the Serial Options dialog in the Dynamic C Options > Project Options > Communications menu. Change the baud rate to 57,600 bps.
12
MiniCom (OP6800)
2.7 PONG.C
You are now ready to test your programming connections by running a sample program. Find the file PONG.C, which is in the Dynamic C SAMPLES folder. To run the program, open it with the File menu (if it is not still open), compile it using the Compile menu, and then run it by selecting Run in the Run menu. The STDIO window will open and will display a small square bouncing around in a box. This program shows that the CPU is working. The sample program described in Section 5.2.3, "Run the PINGME.C Demo," tests the TCP/IP portion of the board (if you have the OP6800 model--the OP6810 does not have an Ethernet capability).
2.8 Where Do I Go From Here?
NOTE: If you purchased your OP6800 through a distributor or Rabbit partner, contact the distributor or partner first for technical support.
If there are any problems at this point: * Use the Dynamic C Help menu to get further assistance with Dynamic C. * Check the Rabbit Technical Bulletin Board and forums at www.rabbit.com/support/bb/ and at www.rabbit.com/forums/. * Use the Technical Support e-mail form at www.rabbit.com/support/. If the sample program ran fine, you are now ready to go on to explore other OP6800 features and develop your own applications. The following sample programs illustrate the features and operation of the OP6800.
OP6800 Demonstration Board (SAMPLES\LCD_KEYPAD\122x32_1x7) (SAMPLES\OP6800\DEMO_BD)
KEYBASIC.C KEYMENU.C SCROLLING.C TEXT.C
KEYPAD.C SWITCHES.C
These sample programs can be used as templates for applications you may wish to develop. Chapter 3, "Subsystems," provides a description of the OP6800's features, Chapter 4, "Software," describes the Dynamic C software libraries and describes the sample programs, and Chapter 5, "Using the TCP/IP Features," explains the TCP/IP features and describes some sample programs.
User's Manual
13
14
MiniCom (OP6800)
3. SUBSYSTEMS
Chapter 3 describes the principal subsystems for the OP6800.
* Digital I/O * Serial Communication * Memory Figure 7 shows these Rabbit-based subsystems designed into the OP6800.
32 kHz 11 MHz osc osc
RS-232
RS-485
SRAM Flash
RABBIT (R) 2000 Ethernet
Decoder Keypad
Digital Input
(OP6800 only)
Display
Digital Output
RabbitCore Module
Figure 7. OP6800 Subsystems
User's Manual
15
3.1 Pinouts
Figure 8 shows the OP6800 pinouts.
OUT00
OUT02
OUT04
OUT06
OUT08
OUT10
+RAW
J1
TxC TxB GND +K GND IN01 IN03 IN05 IN07 IN09 IN13 IN15 OUT01 OUT03 OUT05 OUT07 OUT09 485+ IN17 IN11
R4 LCD1
J1
C1
R3 R2 U1
C8 C9 C7 D2
C2 D3
C3
C4 D4
C5 D5
RP1
RP2
RP3
RN1
U2
C29 GND
GND
EGND
C17 R32 RP4 D6 C24
C7
U8 U7
Q5 R13
C30 JP2
R12
R8 RP9
JP5
R10
DS2
ACT
R6
JP6
RP6 RP7
RP8
JP1
LNK
C1
D12
D11 D7
Q6 R14
JP1
R11
DS1
U3
D13 R17
D8 Q8
D9 R20 Q11 R21 Q12
D10
R16
Q7
FlashQ9 EPROM
R18
R19
Q10
Y2 C2
R15 R24 R25 R23 C33 R28
C28
R26
R39
C44
D1
R27
RT1
R41 R38
JP3 R22 JP4
D3
C34
C25
J2
U2
R16
C35
R37
C14
C27
R18
U5
U3
Y3
D2 R7
U6
C45
Y1 C4 R1 C17 C38
U6
C37
R21 R22
R8
KP1
C3
R36
C36 U4
D14
C13
R29
C40
Q5
R2
R20
C42
J1
C43 BT1 U1
J2
R13 U7 R31
R9
R15
J3
Figure 8. OP6800 Pinouts
Header J1 is a standard 2 x 20 header with a nominal 0.1" pitch. The OP6800 also has an
RJ-45 Ethernet jack on the RabbitCore module.
16
Q2
C8
Q3
R11
C12 R17
C41
R19
Q4
C39
VBAT
485
IN00
IN02
IN04
IN06
IN08
IN10
IN12
IN14
IN16
RxC
RxB
485 +485
RxC TxC C6 R5
RxB TxB C10
OUT00 GND
OUT02 OUT01 C25
OUT04 OUT03
OUT06 OUT05 Q1 C26
OUT08 OUT07 Q2
OUT10 OUT09 Q3
+RAW +K R9
IN00 GND Q4
IN02 IN01 C11
IN04 IN03 C12
IN06 IN05 C14
IN08 IN07 C15
IN10 IN09 RP5 C16
IN12 IN11 C13
IN14 IN13
IN16 IN15
VBAT IN17
R7
C23 C22 C21 C20 C19 C18
C32
C27 C28
C29 C31 C30
R30
MiniCom (OP6800)
3.2 Digital I/O
3.2.1 Digital Inputs The OP6800 has eight digital inputs, IN00-IN07, each with a current-limiting resistor of 27 k, and protected over a range of -36 V to +36 V. The inputs are all pulled up to +5 V as shown in Figure 9.
Vcc
(R)
Rabbit(R) 2000 Microprocessor
GND
Figure 9. OP6800 Digital Inputs
The OP6800 also has five digital inputs, IN08-IN12, each with a current-limiting resistor of 12 k, protected over a range of -25 V to +25 V, and pulled up to +5 V. The actual switching threshold for IN00-IN12 is approximately 2.40 V. Anything below this value is a logic 0, and anything above is a logic 1. IN13-IN17 are connected in parallel with five of the keypad buttons. These inputs are normally pulled up, but pulling one of these inputs down is the equivalent of pressing the corresponding keypad key remotely.
Table 2. Remote Keypad Operation
Keypad Key 0( 1( 2( 3( 6( ) ) ) ) ) Remote Keypad Signal Inputs IN13 IN14 IN15 IN16 IN17
NOTE: Remote keypad signal inputs IN13-IN17 are not protected, and can only handle a voltage range from 0 to +5 V. These inputs were designed solely to facilitate a remote keypad, and should not be used for other purposes.
User's Manual 17
3.2.2 Digital Outputs The OP6800 has 11 digital outputs, OUT00-OUT10, which can each sink up to 200 mA. Figure 10 shows a wiring diagram for using the digital outputs. OUT00-OUT06 can switch up to 40 V and the corresponding LEDs when the outputs are on. OUT07-OUT10 offer protection for inductive loads when K is connected to an external power supply; OUT07-OUT10 are not connected to the LEDs.
OUT00OUT06
Vcc
(0 40 V)
OUT07OUT10
K
(0 40 V)
Figure 10. OP6800 Digital Outputs
It is possible to use an external open-collector driver to control the LEDs associated with OUT00-OUT06. Connect the external driver to the output corresponding to the LED you wish to control, but keep the internal driver turned off. The external driver will then control the LED.
18
MiniCom (OP6800)
3.3 Serial Communication
The OP6800 has two RS-232 serial ports, which can be configured as one RS-232 serial channel (with RTS/CTS) or as two RS-232 (3-wire) channels using the serMode software function call. Table 3 summarizes the options.
Table 3. Serial Communication Configurations
Serial Port Mode B C D
0 1
RS-232, 3-wire RS-232, 5-wire
RS-232, 3-wire CTS/RTS
RS-485 RS-485
The OP6800 also has one RS-485 serial channel and one CMOS serial channel. The CMOS serial channel serves as the programming port. All four serial ports operate in an asynchronous mode. An asynchronous port can handle 7 or 8 data bits. A 9th bit address scheme, where an additional bit is sent to mark the first byte of a message, is also supported. Serial Port A, the CMOS programming port, can be operated alternately in the clocked serial mode. In this mode, a clock line synchronously clocks the data in or out. Either of the two communicating devices can supply the clock. The OP6800 boards typically use all four ports in the asynchronous serial mode. Serial Ports B and C are used for RS-232 communication, and Serial Port D is used for RS-485 communication. The OP6800 uses an 11.0592 MHz crystal, which is doubled to 22.1184 MHz. At this frequency, the OP6800 supports standard asynchronous baud rates up to a maximum of 230,400 bps. 3.3.1 RS-232 The OP6800 RS-232 serial communication is supported by an RS-232 transceiver. This transceiver provides the voltage output, slew rate, and input voltage immunity required to meet the RS-232 serial communication protocol. Basically, the chip translates the Rabbit 2000's CMOS/TTL signals to RS-232 signal levels. Note that the polarity is reversed by an RS-232 circuit so that a +5 V input becomes approximately -10 V and 0 V is output as +10 V. The RS-232 transceiver also provides the proper line loading for reliable communication. RS-232 can be used effectively at the OP6800's maximum baud rate for distances of up to 15 m. 3.3.2 RS-485 The OP6800 has one RS-485 serial channel, which is connected to the Rabbit 2000 Serial Port D through an RS-485 transceiver. The half-duplex communication uses the Rabbit 2000's PB6 pin to control the transmit enable on the communication line. The OP6800 can be used in an RS-485 multidrop network. Connect the 485+ to 485+ and 485- to 485- using single twisted-pair wires (nonstranded, tinned) as shown in Figure 11. Note that a common ground is recommended.
User's Manual 19
GND
GND
RS485+
RS485+
RS-485
RS-485
Figure 11. OP6800 Multidrop Network
The OP6800 comes with a 220 termination resistor and two 681 bias resistors installed and enabled with jumpers across pins 1-2 and 5-6 on header JP1, as shown in Figure 12.
485+
R4 J1
U1
OUT08 OUT10 OUT07 OUT09 C3 D3
Factory Default
6 4 2 JP1 5 3 1
JP1 R6
6
1
JP1
IN12 IN14 IN16 VBAT IN13 IN15 IN17 IN11
bias
2
C1
R3 R2 U1
C8 C9 C7 D2
C2
C4 D4
U2
7
C5
RP1
RP2
RP3
5
RN1
6
termination bias
C29 GND
GND
EGND
C17 R32 RP4 D6 C24
C7
JP6
RP6 RP7
RP8
U8 U7
Q5 R13
R12
R8 RP9
R10
JP1
C1
D12
D11 D7
485
C29 C31 C30 D9 R21 Q12
C30 JP2
JP5
DS2
ACT
LNK
Q6 R14
R11
DS1
U3
D13 R17
D8 Q8
D10
R16
Q7
FlashQ9 R18 EPROM
R22
RT1
R19
Q10
R20
Q11
Y2 C2
R15 R24 R25 R23 C33 R28
C28
R26
R39
C44
D1
R27
R41 R38
JP3 JP4
D3
C34
C25
J2
U2
R16
C35
R37
C14
C27
R18
U5
U3
Y3
D2 R7
U6
C45
Y1 C4 R1 C38 C17
U6
C37
R21 R22
R8
KP1
C3
R36
C36 U4
D14
C13
R29
C40
Q5
R2
R20
C42
J1
C43 BT1 U1
J2
R13 U7 R31
R9
R15
J3
Figure 12. RS-485 Termination and Bias Resistors
For best performance, the bias and termination resistors in a multidrop network should only be enabled on both end nodes of the network. Disable the termination and bias resistors on any intervening OP6800 units in the network by removing both jumpers from header JP1.
TIP: Save the jumpers for possible future use by "parking" them across pins 1-3 and 4-6 of header JP1. Pins 3 and 4 are not otherwise connected to the OP6800.
20 MiniCom (OP6800)
Q2
C8
Q3
R11
C12 R17
C41
R19
Q4
C39
RS-485
R13 681 W R11 220 W R6 681 W
RS485+
GND
485
RxC
RxB
OUT00
OUT02
OUT04
OUT06
+RAW
IN00
IN02
IN04
IN06
IN08
IN10
LCD1 +485 TxC C6 R5 TxB C10 R30
OUT01 C25
OUT03
OUT05
GND
GND D5
IN01
IN03
IN05
IN07
IN09
+K
C13
C11 C12
C14
C15
RP5 C16
Q2 R7
Q4
Q3
Q1 C26
R9
C23 C22 C21 C20 C19 C18
C32
C27
C28
3.3.3 Programming Port The OP6800 programming port is accessed using header J1 on the OP6800's RabbitCore module or through the Ethernet jack. The programming port uses the Rabbit 2000's Serial Port A for communication. Dynamic C uses the programming port to download and debug programs. The programming port is also used for the following operations. * Cold-boot the Rabbit 2000 on the OP6800 after a reset. * Remotely download and debug a program over an Ethernet connection using the RabbitLink EG2110. * Fast copy designated portions of flash memory from one Rabbit-based board (the master) to another (the slave) using the Rabbit Cloning Board.
Alternate Uses of the Programming Port
All three clocked Serial Port A signals are available as * a synchronous serial port * an asynchronous serial port, with the clock line usable as a general CMOS input The programming port may also be used as a serial port via the DIAG connector on the programming cable. In addition to Serial Port A, the Rabbit 2000 startup-mode (SMODE0, SMODE1), status, and reset pins are available on the programming port header. The two startup mode pins determine what happens after a reset--the Rabbit 2000 is either cold-booted or the program begins executing at address 0x0000. The status pin is used by Dynamic C to determine whether a Rabbit microprocessor is present. The status output has three different programmable functions: 1. It can be driven low on the first op code fetch cycle. 2. It can be driven low during an interrupt acknowledge cycle. 3. It can also serve as a general-purpose output. The /RESET_IN pin is an external input that is used to reset the Rabbit 2000 and the OP6800 onboard peripheral circuits. Refer to the Rabbit 2000 Microprocessor User's Manual for more information.
User's Manual
21
3.3.4 Ethernet Port (OP6800 models only) Figure 13 shows the pinout for the Ethernet port (J2 on the OP6800 module). Note that there are two standards for numbering the pins on this connector--the convention used here, and numbering in reverse to that shown. Regardless of the numbering convention followed, the pin positions relative to the spring tab position (located at the bottom of the RJ-45 jack in Figure 13) are always absolute, and the RJ-45 connector will work properly with off-the-shelf Ethernet cables.
ETHERNET
1 8
1. 2. 3. 6.
E_Tx+ E_Tx E_Rx+ E_Rx
RJ-45 Plug
RJ-45 Jack
Figure 13. RJ-45 Ethernet Port Pinout
RJ-45 pinouts are sometimes numbered opposite to the way shown in Figure 13. Two LEDs are placed next to the RJ-45 Ethernet jack, one to indicate an Ethernet link (LNK) and one to indicate Ethernet activity (ACT). The transformer/connector assembly ground is connected to the BL2100 module printed circuit board digital ground via a 0 resistor "jumper," R29, as shown in Figure 14.
RJ-45 Ethernet Plug
R29
Board Ground Chassis Ground
Figure 14. Isolation Resistor R29
The factory default is for the 0 resistor "jumper" at R29 to be installed. In high-noise environments, remove R29 and ground the transformer/connector assembly directly through the chassis ground. This will be especially helpful to minimize ESD and/or EMI problems.
22
MiniCom (OP6800)
3.4 Programming Cable
The programming cable is used to connect the programming port of the OP6800 to a PC serial COM port. The programming cable converts the RS-232 voltage levels used by the PC serial port to the voltage levels used by the Rabbit 2000. When the PROG connector on the programming cable is connected to the OP6800 programming port, programs can be downloaded and debugged over the serial interface between the PC and the Rabbit 2000. The DIAG connector of the programming cable may be used on header J1 of the OP6800 RabbitCore module with the OP6800 operating in the Run Mode. This allows the programming port to be used as a regular serial port. 3.4.1 Changing Between Program Mode and Run Mode The OP6800 is automatically in Program Mode when the PROG connector on the programming cable is attached, and is automatically in Run Mode when no programming cable is attached. When the Rabbit 2000 is reset, the operating mode is determined by the status of the SMODE pins. When the programming cable's PROG connector is attached, the SMODE pins are pulled high, placing the Rabbit 2000 in the Program Mode. When the programming cable's PROG connector is not attached, the SMODE pins are pulled low, causing the Rabbit 2000 to operate in the Run Mode.
Program Mode Run Mode
R4 R4 J1
LCD1
R4 LCD1
J1
485 +485
RxC
RxB
OUT00 GND
OUT02 OUT01
OUT04 OUT03
OUT06 OUT05
OUT08 OUT07
OUT10 OUT09
+RAW
IN00 GND
IN02 IN01
IN04 IN03
IN06 IN05
IN08 IN07
IN10 IN09
IN12 IN11
IN14 IN13
IN16 IN15
VBAT IN17
485 +485
RxC
RxB
OUT00
OUT02 OUT01
OUT04 OUT03
OUT06 OUT05
OUT08 OUT07
OUT10 OUT09
+RAW
IN00
IN02
IN04
IN06
IN08
IN10
IN12
IN14
IN16
VBAT
C1
GND
GND
TxC C6
IN01
IN03
IN05
IN07
IN09
IN13
IN15
IN17
TxB
IN11
C1
TxC
TxB
+K
+K
R3 R2 U1
C8 C9 C7 D2
C2 D3
C3
C4 D4
C5 D5
RP1
RP2
RP3
RN1 R2 U1 C17 R32
R3
C8 C9 C7 D2
C2 D3
C3
C4 D4
C5 D5
RP1
RP2
RP3
RN1
U2
C29 GND
C29 GND
GND
GND
EGND
EGND
C10
C6
U2
C10
C13
C13
C11 C12
C11
C17 R32 RP4 D6 C24
C14
C15
RP5 C16
C12
C14
C15
RP5 C16
Q2
Q4
Q3
Q1
Q2
Q4
Q3
Q1
C7
JP6
C7
ACT
U8 U7
U8 U7
DS2
JP5
C30 JP2
JP1
C1
R13
D12
C1
D11 D7
Q6 R14 JP1 R11
JP1
RP9
LNK
Q5 R13
R12
Q5
R12
R8 RP9
C30 JP2
R8
R10 C27 C29 C28
JP5
R10 C27 C29 C28
DS2
ACT
C23 C22 C21 C20 C19 C18
R6
R6
JP6
RP6 RP7
RP8
RP4 D6 C24
RP6 RP7
RP8
R5 C25 C26
R5
R7
R9
R7
R9
C25
C26
C23 C22 C21 C20 C19 C18
C32
LNK
C31 C30
C32
D12
D11 D7
Q6 R14
C31 C30
JP1
R11
DS1
DS1
D10
U3
U3
D13 R17
D8 Q8 R18 FlashQ9 EPROM R19 Q10 R20 Q11
D9 R21 Q12
D10
D13 R17
R16
Q7
R16 R15
Q7
Q8
Y2 C2
FlashQ9 R18 EPROM
R22
D8 R19 Q10 R20 Q11
D9 R21 Q12
R26
R39
C44
D1
R27
RT1
R41 R38
R22
JP3 JP4
D3
Y2 C2
R15 R24 R25 R23 C33 R28 C34
R24 R25
R23 C33 R28 C34
R16
R26
C44
R27
JP3 JP4
D3
J2
C28
U2
R18
U5
R37
C14
C14
D2 R7
U6
R36
D2 R7
U6
R21 R22
C45
Y1 C4 C38 R1 C17
U6
C37
C45
Y1 C4 R1 C38 C17
C13
Q5
C13
R29
C40
U6
C37
R21 R22
R8
KP1
C3
U4
R8
KP1
C3
R36
C36
R37
C27
D14
C27
R18
R38
U5
U3
Y3
U3
C28
U2
Y3
C25
C25
R16
C35
D1
R39
RT1
R41
J2
C35
C36 U4
D14
R29
C40
R20
R2
C42
Q4
R2
R20
R11 R13 U7 R31
R19
C42
C12 R17
C43 BT1 U1
C43 BT1 U1
R15
J2
R13 U7 R31
R9
J3
R9
R15
PROG
J1
J1
Q3
Q2
C8
J2
J3
DIAG
Colored edge
Programming Cable
To PC COM port
RESET OP6800 when changing mode: Cycle power off/on after removing or attaching programming cable.
Figure 15. OP6800 Program Mode and Run Mode Set-Up
A program "runs" in either mode, but can only be downloaded and debugged when the OP6800 is in the Program Mode. Refer to the Rabbit 2000 Microprocessor User's Manual for more information on the programming port and the programming cable.
User's Manual 23
Q2
C8
Q3
R11
C39
C12 R17
C41
C41
R19
Q4
C39
Q5
R30
R30
3.5 Other Hardware
3.5.1 Clock Doubler The OP6800 takes advantage of the Rabbit 2000 microprocessor's internal clock doubler. A built-in clock doubler allows half-frequency crystals to be used to reduce radiated emissions. The 22.1 MHz frequency is generated using an 11.0592 MHz crystal. The clock doubler is disabled automatically in the BIOS for crystals with a frequency above 12.9 MHz. The clock doubler may be disabled if 22.1 MHz clock speeds are not required. Disabling the Rabbit 2000 microprocessor's internal clock doubler will reduce power consumption and further reduce radiated emissions. The clock doubler is disabled with a simple global macro as shown below. 1. Select the "Defines" tab from the Dynamic C Options > Project Options menu. 2. Add the line CLOCK_DOUBLED=0 to always disable the clock doubler.
The clock doubler is enabled by default, and usually no entry is needed. If you need to specify that the clock doubler is always enabled, add the line CLOCK_DOUBLED=1 to always enable
the clock doubler. The clock speed will be doubled as long as the crystal frequency is less than or equal to 26.7264 MHz. 3. Click OK to save the macro. The clock doubler will now remain off whenever you are in the
project file where you defined the macro.
24
MiniCom (OP6800)
3.5.2 Spectrum Spreader OP6800 operator interfaces that carry the CE mark on their RabbitCore module have a Rabbit 2000 microprocessor that features a spectrum spreader, which helps to mitigate EMI problems. By default, the spectrum spreader is on automatically for OP6800 operator control panels that carry the CE mark when used with Dynamic C 7.30 or later versions, but the spectrum spreader may also be turned off or set to a stronger setting. The means for doing so is through a simple global macro as shown below. 1. Select the "Defines" tab from the Dynamic C Options > Project Options menu. 2. Normal spreading is the default, and usually no entry is needed. If you need to specify normal spreading, add the line
ENABLE_SPREADER=1
For strong spreading, add the line
ENABLE_SPREADER=2
To disable the spectrum spreader, add the line
ENABLE_SPREADER=0
NOTE: The strong spectrum-spreading setting is not needed for the OP6800.
3. Click OK to save the macro. The spectrum spreader will now remain off whenever you are in the project file where you defined the macro. There is no spectrum spreader functionality for OP6800 operator control panels that do not carry the CE mark on their RabbitCore module or when using any OP6800 with a version of Dynamic C prior to 7.30.
User's Manual
25
3.6 Memory
3.6.1 SRAM The OP6800 module is designed to accept 128K to 512K of SRAM. The standard OP6800 modules come with 128K of SRAM. 3.6.2 Flash Memory The OP6800 is also designed to accept 128K to 512K of flash memory. The standard OP6800 modules come with one 256K flash memory.
NOTE: Rabbit recommends that any customer applications should not be constrained by the sector size of the flash memory since it may be necessary to change the sector size in the future.
A Flash Memory Bank Select jumper configuration option based on 0 surface-mounted resistors exists at header JP2 on the RabbitCore module. This option, used in conjunction with some configuration macros, allows Dynamic C to compile two different co-resident programs for the upper and lower halves of the 256K flash in such a way that both programs start at logical address 0000. This is useful for applications that require a resident download manager and a separate downloaded program. See Technical Note TN218, Implementing a Serial Download Manager for a 256K Flash, for details.
26
MiniCom (OP6800)
3.7 Keypad Labeling
The keypad may be labeled according to your needs. A template is provided in Figure 16 to allow you to design your own keypad label insert.
1.10
(28)
2.35
(60)
Figure 16. Keypad Template
Before you can replace the keypad legend, you will have to remove the LCD/keypad module from the plastic bezel. The LCD/keypad module circuit board is held down with two screws and two tabs as shown in Figure 17.
R4 LCD1
J1
485 +485
RxC
RxB
OUT00 GND
OUT02 OUT01
OUT04 OUT03
OUT06 OUT05
OUT08 OUT07
OUT10 OUT09
+RAW
IN00 GND
IN02 IN01
IN04 IN03
IN06 IN05
IN08 IN07
IN10 IN09
IN12 IN11
IN14 IN13
IN16 IN15
VBAT IN17
C1
TxC C6
TxB
+K
JP6
Mounting screws
R6 JP1
R3 R2 U1
C8 C9 C7 D2
C2 D3
C3
C4 D4
C5 D5
RP1
RP2
RP3
RN1
U2
GND
EGND
C17 R32 RP4 D6 C24
C7
RP6 RP7
RP8
Mounting screws
C29 GND
C10
C13
C11 C12
C14
C15
RP5 C16
Q2
Q4
Q3
Q1
U8 U7
Q5 R13
R12
R8
C30 JP2
JP5
R10 C27 C29
DS2
ACT
JP1
R5 C25 C26
RP9
R7
R9
C23 C22 C21 C20 C19 C18 Q6 R14
LNK
C32
C1
D12
D11 D7
C28
C31 C30
R11
DS1
U3
D13 R17
D8 Q8 R18 FlashQ9 EPROM R19 Q10 R20 Q11
D9 R21 Q12
D10
R16
Q7
Y2 C2
R15 R24 R25 R23 C33 R28
C28
R26
R39
C44
D1
R27
RT1
R41 R38
R22 JP4
JP3
C34
C25
J2
U2
R16
D3
C35
Mounting tabs
R37
C14
C27
R18
U5
U3
Y3
D2 R7
U6
C45
Y1 C4 R1 C38 C17
U6
C37
R21 R22
R8
KP1
C3
R36
C36 U4
D14
C13
R29
C40
Q5
Mounting tabs
R2
R20
R11 R13 U7 R31
C42
C12 R17
C41 C43 BT1 U1
R15
R19
Q4 Q3
J1
R9
J2
J3
Figure 17. Removing LCD/Keypad Module from Plastic Bezel
To replace the keypad legend, remove the old legend and insert your new legend prepared according to the template in Figure 16. The keypad legend is located under the blue keypad matte, and is accessible from either the left side or the right side as shown in Figure 18. A small screwdriver or a similar small pointed objectcan be used to nudge the keypad legend in or out.
User's Manual
Q2
C8
R30
C39
27
Keypad label is located under the blue keypad matte.
Figure 18. Removing and Inserting Keypad Label
Once you have replaced the keypad label, re-insert the LCD/keypad module circuit board under the mounting tabs in the plastic bezel, as shown in Figure 17. Secure the LCD/keypad module circuit board with the two screws.
28
MiniCom (OP6800)
4. SOFTWARE
Dynamic C is an integrated development system for writing embedded software. It runs on an IBM-compatible PC and is designed for use with Rabbit-based single-board computers and other devices based on the Rabbit microprocessor. Chapter 4 provides the libraries, function calls, and sample programs related to the OP6800.
You have a choice of doing your software development in the flash memory or in the static RAM included on the OP6800. The flash memory and SRAM options are selected with the Options > Compiler menu. The advantage of working in RAM is to save wear on the flash memory, which is limited to about 100,000 write cycles. The disadvantage is that the code and data might not both fit in RAM.
NOTE: An application can be developed in RAM, but cannot run standalone from RAM after the programming cable is disconnected. All standalone applications can only run from flash memory. NOTE: Do not depend on the flash memory sector size or type. Due to the volatility of the flash memory market, the OP6800 and Dynamic C were designed to accommodate flash devices with various sector sizes.
OP6800s that are special-ordered with the 512K flash/512K SRAM memory option have two 256K flash memories. By default, Dynamic C will use only the first flash memory for program code in these OP6800s. Uncomment the BIOS macro USE_2NDFLASH_CODE in BIOS\RABBITBIOS.C to allow the second flash memory to hold any program code that is in excess of the available memory in the first flash.
User's Manual
29
Developing software with Dynamic C is simple. Users can write, compile, and test C and assembly code without leaving the Dynamic C development environment. Debugging occurs while the application runs on the target. Alternatively, users can compile a program to a binary image file for later loading. Dynamic C runs on PCs under Windows 95 or later. Programs can be downloaded at baud rates of up to 230,000 bps after the program compiles. Dynamic C has a number of standard features. * Full-feature source and/or assembly-level debugger, no in-circuit emulator required. * Royalty-free TCP/IP stack with source code and most common protocols. * Hundreds of functions in source-code libraries and sample programs:
Exceptionally fast support for floating-point arithmetic and transcendental functions. RS-232 and RS-485 serial communication. Analog and digital I/O drivers. I2C, SPI, GPS, file system. LCD display and keypad drivers.
* Powerful language extensions for cooperative or preemptive multitasking * Loader utility program to load binary images into Rabbit targets in the absence of Dynamic C. * Provision for customers to create their own source code libraries and augment on-line help by creating "function description" block comments using a special format for library functions. * Standard debugging features:
Breakpoints--Set breakpoints that can disable interrupts. Single-stepping--Step into or over functions at a source or machine code level, C/OS-II aware. Code disassembly--The disassembly window displays addresses, opcodes, mnemonics, and machine cycle times. Switch between debugging at machine-code level and source-code level by simply opening or closing the disassembly window. Watch expressions--Watch expressions are compiled when defined, so complex expressions including function calls may be placed into watch expressions. Watch expressions can be updated with or without stopping program execution. Register window--All processor registers and flags are displayed. The contents of general registers may be modified in the window by the user. Stack window--shows the contents of the top of the stack. Hex memory dump--displays the contents of memory at any address. STDIO window--printf outputs to this window and keyboard input on the host PC can be detected for debugging purposes. printf output may also be sent to a serial port or file.
30
MiniCom (OP6800)
4.1 Upgrading Dynamic C
4.1.1 Patches and Bug Fixes Dynamic C patches that focus on bug fixes are available from time to time. Check the Web site www.rabbit.com/support/ for the latest patches, workarounds, and bug fixes. The default installation of a patch or bug fix is to install the file in a directory (folder) different from that of the original Dynamic C installation. Rabbit recommends using a different directory so that you can verify the operation of the patch without overwriting the existing Dynamic C installation. If you have made any changes to the BIOS or to libraries, or if you have programs in the old directory (folder), make these same changes to the BIOS or libraries in the new directory containing the patch. Do not simply copy over an entire file since you may overwrite a bug fix; of course, you may copy over any programs you have written. Once you are sure the new patch works entirely to your satisfaction, you may retire the existing installation, but keep it available to handle legacy applications. 4.1.2 Upgrades Dynamic C installations are designed for use with the board they are included with, and are included at no charge as part of our low-cost kits. Dynamic C is a complete software development system, but does not include all the Dynamic C features. Rabbit also offers add-on Dynamic C modules containing the popular C/OS-II real-time operating system, as well as PPP, Advanced Encryption Standard (AES), and other select libraries. In addition to the Web-based technical support included at no extra charge, a one-year telephonebased technical support module is also available for purchase.
User's Manual
31
4.2 Font and Bitmap Converter
A Font and Bitmap Converter tool is available to convert Windows fonts and monochrome bitmaps to a library file format compatible with Rabbit's Dynamic C applications and graphical displays. Non-Roman characters can also be converted by applying the monochrome bitmap converter to their bitmaps. Start the Font and Bitmap Converter tool by double-clicking on the fbmcnvtr.exe file in the Dynamic C directory. You then select and convert existing fonts or bitmaps. Complete instructions are available via the Help menu that is in the Font and Bitmap Converter tool. Once you are done, the converted file is displayed in the editing window. Editing may be done, but should not be necessary. Save the file as libraryfilename.lib, where libraryfilename is a file name of your choice. Add the library file(s) to applications with the statement #use libraryfilename.lib, or by cutting and pasting from the library file(s) you created into the application program.
TIP: If you used the #use libraryfilename.lib statement, remember to enter libraryfilename.lib into lib.dir, which is located in your Dynamic C directory.
You are now ready to add the font or bitmap to your application using the glXFontInit or the glXPutBitmap function calls.
32
MiniCom (OP6800)
4.3 Sample Programs
Sample programs are provided in the Dynamic C Samples folder. The sample program PONG.C demonstrates the output to the STDIO window. The various directories in the Samples folder contain specific sample programs that illustrate the use of the corresponding Dynamic C libraries. The OP6800 folder provides sample programs specific to the OP6800. Each sample program has comments that describe the purpose and function of the program. Follow the instructions at the beginning of the sample program. To run a sample program, open it with the File menu (if it is not still open), then compile and run it by pressing F9. The OP6800 must be in Program mode (see Section 3.4) and must be connected to a PC using the programming cable as described in Section 2.1. More complete information on Dynamic C is provided in the Dynamic C User's Manual. TCP/IP specific functions are described in the Dynamic C TCP/IP User's Manual. Information on using the TCP/IP features and sample programs is provided in Section 5, "Using the TCP/IP Features." 4.3.1 Board ID The following sample program can be found in the SAMPLES\OP6800 subdirectory. * BOARD_ID.C--Detects the type of single-board computer and displays the information in the STDIO window. For the OP6800, the STDIO window should show OP6800. 4.3.2 Demonstration Board The following sample programs are found in the DEMO_BD subdirectory in SAMPLES\OP6800. * BUZZER.C--Demonstrates the use of the buzzer on the Demonstration Board. Remember to set the jumper across pins 1-2 of header JP1 on the Demonstration Board (see Figure C-4) to enable the buzzer on. When you finish with BUZZER.C, it is recommended that you reconnect the jumper across pins 2-3 of header JP1 on the Demonstration Board to disable the buzzer. * KEYPAD.C--Flashes the LED above a keypad button when the corresponding keypad button is pressed. The corresponding LED on the Demonstration Board will also flash if a keypad button in the top row of the keypad is pressed. A message is also displayed on the LCD. * SWITCHES.C--Flashes the LED on the Demonstration Board and the OP6800 when the corresponding pushbutton switch on the Demonstration Board is pressed. A message is also displayed on the LCD.
User's Manual
33
4.3.3 Digital I/O The following sample programs are found in the IO subdirectory in SAMPLES\OP6800. * DIGIN.C--Demonstrates the use of the digital inputs. By pressing a pushbutton switch on the Demonstration Board, you can view an input channel toggle from HIGH to LOW on your PC monitor. The four pushbutton switches correspond to IN00-IN03 on the OP6800. IN04-IN12 can also be toggled by momentarily grounding the inputs. * DIGOUT.C--Demonstrates the use of the sinking high-current outputs. By pressing a pushbutton switch on the Demonstration Board, you can view an output channel toggle the corresponding LEDs on/off. The four pushbutton switches correspond to OUT07- OUT10. 4.3.4 Serial Communication The following sample programs are found in the RS232 subdirectory in SAMPLES\OP6800. * PUTS.C--Transmits and then receives an ASCII string on Serial Ports B and C. It also displays the serial data received from both ports in the STDIO window. * RELAYCHR.C--This program echoes characters over Serial Port B to Serial Port C. It must be run with a serial utility such as Hyperterminal. The following sample programs are found in the RS485 subdirectory in SAMPLES\OP6800. * MASTER.C--This program demonstrates a simple RS-485 transmission of lower case letters to a slave OP6800. The slave will send back converted upper case letters back to the master OP6800 and display them in the STDIO window. Use SLAVE.C to program the slave OP6800. * SLAVE.C--This program demonstrates a simple RS-485 transmission of lower case letters to a slave OP6800. The slave will send back converted upper case letters back to the master OP6800 and display them in the STDIO window. Use MASTER.C to program the master OP6800. 4.3.5 LCD/Keypad Module Sample Programs The following sample programs are found in the 122x32_1x7 subdirectory in
SAMPLES\LCD_Keypad.
* ALPHANUM.C--Demonstrates how to create messages using the keypad and then displaying them on the LCD display. * COFTERMA.C--Demonstrates cofunctions, the cofunction serial library, and using a serial ANSI terminal such as Hyperterminal from an available COM port connection. * DISPPONG.C--Demonstrates output to LCD display. * DKADEMO1.C--Demonstrates some of the LCD/keypad module font and bitmap manipulation features with horizontal and vertical scrolling, and using the GRAPHIC.LIB library. * FUN.C--Demonstrates drawing primitive features (lines, circles, polygons) using the GRAPHIC.LIB library
34 MiniCom (OP6800)
* KEYBASIC.C--Demonstrates the following keypad functions in the STDIO display window:
- default ASCII keypad return values. - custom ASCII keypad return values. - keypad repeat functionality.
* KEYMENU.C--Demonstrates how to implement a menu system using a highlight bar on a graphic LCD display. The menu options for this sample are as follows.
1. Set Date/Time 2. Display Date/Time 3. Turn Backlight OFF 4. Turn Backlight ON 5. Toggle LEDs 6. Increment LEDs 7. Disable LEDs
* LED.C--Demonstrates how to toggle the LEDs on the LCD/keypad module. * SCROLLING.C--Demonstrates scrolling features of the GRAPHIC.LIB library. * TEXT.C--Demonstrates the text functions in the GRAPHIC.LIB library. Here is a list of what is demonstrated.
1. Font initialization. 2. Text window initialization. 3. Text window, end-of-line wraparound, end-of-text window clipping, line feed, and carriage return. 4. Creating 2 different TEXT windows for display. 5. Displaying different FONT sizes.
4.3.6 TCP/IP Sample Programs TCP/IP sample programs are described in Chapter 5.
User's Manual
35
4.4 OP6800 Libraries
The following library folders contain the libraries whose function calls are used to develop applications for the OP6800. * OP6800--libraries associated with OP6800 serial communication, I/O, and initialization. The functions in the OP68xx.LIB library are described in Appendix D. * DISPLAYS\GRAPHIC--libraries associated with the LCD display. The functions in these libraries are described in Appendix D. * KEYPADS-libraries associated with the keypad. The functions in these libraries are described in Appendix D. * TCPIP--libraries specific to using TCP/IP functions. The functions in these libraries are described in the Dynamic C TCP/IP User's Manual. Other generic functions applicable to all devices based on the Rabbit 2000 microprocessor are described in the Dynamic C Function Reference Manual.
36
MiniCom (OP6800)
5. USING THE TCP/IP FEATURES
Chapter 5 discusses using the TCP/IP features on the OP6800 boards. The TCP/IP feature is not available on OP6810 versions. 5.1 TCP/IP Connections
Before proceeding you will need to have the following items. * If you don't have an Ethernet connection, you will need to install a 10Base-T Ethernet card (available from your favorite computer supplier) in your PC. * Two RJ-45 straight-through Ethernet cables and a hub, or an RJ-45 crossover Ethernet cable. The Ethernet cables and Ethernet hub are available from Rabbit in a TCP/IP tool kit. More information is available at www.rabbit.com. 1. Connect the AC adapter and the programming cable as shown in Chapter 2, "Getting Started." 2. Ethernet Connections * If you do not have access to an Ethernet network, use a crossover Ethernet cable to connect the OP6800 to a PC that at least has a 10Base-T Ethernet card. * If you have an Ethernet connection, use a straight-through Ethernet cable to establish an Ethernet connection to the OP6800 from an Ethernet hub. These connections are shown in Figure 19.
OP6800 Board
OP6800 Board
User's PC Ethernet crossover cable
Ethernet cables Hub To additional network elements
Direct Connection
(network of 2 computers)
Direct Connection Using a Hub
Figure 19. Ethernet Connections
User's Manual 37
3. Apply Power Plug in the AC adapter. The OP6800 is now ready to be used.
NOTE: A hardware RESET is accomplished by unplugging the AC adapter, then plugging it back in, or by momentarily grounding the board reset input at pin 9 on screw terminal header J2.
The green LNK light on the OP6800 Rabbitcore module is on when the OP6800 is properly connected either to an Ethernet hub or to an active Ethernet card. The orange ACT light flashes each time a packet is received.
38
MiniCom (OP6800)
5.2 TCP/IP Sample Programs
We have provided a number of sample programs demonstrating various uses of TCP/IP for networking embedded systems. These programs require that you connect your PC and the OP6800 together on the same network. This network can be a local private network (preferred for initial experimentation and debugging), or a connection via the Internet. 5.2.1 How to Set IP Addresses in the Sample Programs With the introduction of Dynamic C 7.30 we have taken steps to make it easier to run many of our sample programs. You will see a TCPCONFIG macro. This macro tells Dynamic C to select your configuration from a list of default configurations. You will have three choices when you encounter a sample program with the TCPCONFIG macro. 1. You can replace the TCPCONFIG macro with individual MY_IP_ADDRESS, MY_NETMASK, MY_GATEWAY, and MY_NAMESERVER macros in each program. 2. You can leave TCPCONFIG at the usual default of 1, which will set the IP configurations to 10.10.6.100, the netmask to 255.255.255.0, and the nameserver and gateway to 10.10.6.1. If you would like to change the default values, for example, to use an IP address of 10.1.1.2 for the Coyote board, and 10.1.1.1 for your PC, you can edit the values in the section that directly follows the "General Configuration" comment in the TCP_CONFIG.LIB library. You will find this library in the LIB\TCPIP directory. 3. You can create a CUSTOM_CONFIG.LIB library and use a TCPCONFIG value greater than 100. Instructions for doing this are at the beginning of the TCP_CONFIG.LIB library in the LIB\TCPIP directory. There are some other "standard" configurations for TCPCONFIG that let you select different features such as DHCP. Their values are documented at the top of the TCP_CONFIG.LIB library in the LIB\TCPIP directory. More information is available in the Dynamic C TCP/IP User's Manual. IP Addresses Before Dynamic C 7.30 Most of the sample programs use macros to define the IP address assigned to the board and the IP address of the gateway, if there is a gateway.
#define MY_IP_ADDRESS "216.112.116.155" #define MY_NETMASK "255.255.255.248" #define MY_GATEWAY "216.112.116.153"
In order to do a direct connection, the following IP addresses can be used for the OP6800:
#define MY_IP_ADDRESS "10.1.1.2" #define MY_NETMASK "255.255.255.248" // #define MY_GATEWAY "216.112.116.153"
In this case, the gateway is not used and is commented out. The IP address of the board is defined to be 10.1.1.2. The IP address of your PC can be defined as 10.1.1.1.
User's Manual
39
5.2.2 How to Set Up Your Computer for Direct Connect Follow these instructions to set up your PC or notebook. Check with your administrator if you are unable to change the settings as described here since you may need administrator privileges. The instructions are specifically for Windows 2000, but the interface is similar for other versions of Windows.
TIP: If you are using a PC that is already on a network, you will disconnect the PC from that network to run these sample programs. Write down the existing settings before changing them to facilitate restoring them when you are finished with the sample programs and reconnect your PC to the network.
1. Go to the control panel (Start > Settings > Control Panel), and then double-click the Network icon. 2. Select the network interface card used for the Ethernet interface you intend to use (e.g., TCP/IP Xircom Credit Card Network Adapter) and click on the "Properties" button. Depending on which version of Windows your PC is running, you may have to select the "Local Area Connection" first, and then click on the "Properties" button to bring up the Ethernet interface dialog. Then "Configure" your interface card for a "10Base-T Half-Duplex" or an "Auto-Negotiation" connection on the "Advanced" tab.
NOTE: Your network interface card will likely have a different name.
3. Now select the IP Address tab, and check Specify an IP Address, or select TCP/IP and click on "Properties" to assign an IP address to your computer (this will disable "obtain an IP address automatically"):
IP Address : 10.10.6.101 Netmask : 255.255.255.0 Default gateway : 10.10.6.1
4. Click or to exit the various dialog boxes.
OP6800 Board
IP 10.10.6.101 Netmask 255.255.255.0 User's PC Ethernet crossover cable
Direct Connection PC to OP6800 Board
40
MiniCom (OP6800)
5.2.3 Run the PINGME.C Demo Connect a crossover cable from your computer's Ethernet port to the OP6800's RJ-45 Ethernet connector. Open this sample program from the SAMPLES\TCPIP\ICMP folder, compile the program, and start it running under Dynamic C. When the program starts running, the green LNK light on the OP6800 should be on to indicate an Ethernet connection is made. (Note: If the LNK light does not light, you may not have a crossover cable, or if you are using a hub perhaps the power is off on the hub or you are not using a straightthrough Ethernet cable.) The next step is to ping the board from your PC. This can be done by bringing up the MSDOS window and running the ping program:
ping 10.10.6.100
or by Start > Run and typing the command
ping 10.10.6.100
Notice that the orange ACT light flashes on the OP6800 while the ping is taking place, and indicates the transfer of data. The ping routine will ping the board four times and write a summary message on the screen describing the operation. 5.2.4 Running More Demo Programs With a Direct Connection The program SSI.C (SAMPLES\OP6800\TCPIP\) demonstrates how to make the OP6800 a Web server. This program allows you to turn the LEDs on an attached Demonstration Board from the Tool Kit on and off from a remote Web browser. LED0 and LED1 on the OP6800 (LED1 and LED2 on the Demonstration Board) will match those on the Web page. As long as you have not modified the TCPCONFIG 1 macro in the sample program, enter the following server address in your Web browser to bring up the Web page served by the sample program.
http://10.10.6.100.
Otherwise use the TCP/IP settings you entered in the LIB\TCPIP\TCP_CONFIG.LIB library. The sample program TELNET.C (SAMPLES\OP6800\TCPIP\) allows you to communicate with the OP6800 using the Telnet protocol. This program takes anything that comes in on a port and sends it out Serial Port B. It uses digital input IN00 (which is connected to Demonstration Board switch SW1) to indicate that the TCP/IP connection should be closed and high-current output OUT01 to indicate that there is an active connection.You may change the digital input and output to suit your application needs. Follow the instructions included in the sample program. Run the Telnet program on your PC (Start > Run telnet 10.10.6.100). As long as you have not modified the TCPCONFIG 1 macro in the sample program, the IP address is 10.10.6.100 as shown; otherwise use the TCP/IP settings you entered in the TCP_CONFIG.LIB library. Each character you type will be printed in Dynamic C's STDIO window, indicating that the board is receiving the characters typed via TCP/IP.
User's Manual 41
5.2.5 LCD/Keypad Sample Programs Showing TCP/IP Features The following sample programs, found in the TCPIP subdirectory in SAMPLES/LCD_Keypad/122x32_1x7, are targeted at the Ethernet-enabled versions of the OP6800. Remember to configure the IP address, netmask, and gateway as indicated in the sample programs. * MBOXDEMO.C--This program implements a web server that allows Web e-mail messages to be entered that are then shown on the LCD display. The keypad allows you to scroll within messages, flip to other e-mails, mark messages as read, and delete e-mails. When a new e-mail arrives, an LED turns on, and turns off once the message has been marked as read. A log of all e-mail actions is kept, and can be displayed in the Web browser. All current e-mails can also be read with the Web browser. When using MBOXDEMO.C, connect the OP6800 and a PC (or other device with a Web Browser) to an Ethernet. If you connect the PC and the OP6800 directly, be sure to use a crossover Ethernet cable; straight-through Ethernet cables and a hub may be used instead. * TCP_RESPOND.C--This program and TCP_SEND.C are executed on two separate single-board computers to demonstrate how the two boards communicate with each other. Use PCSEND.EXE on the PC console side at the command prompt if you do not have a second board. PCSEND.EXE is located with source code in the SAMPLES/LCD_Keypad/Windows directory.
TCP_RESPOND.C waits for a message from another single-board computer. The mes-
sage received is displayed on the LCD, and you may respond by pressing a key on the keypad. The response is then sent to the remote single-board computer. * TCPSEND.C--This program and TCP_RESPOND.C are executed on two separate singleboard computers to demonstrate how the two boards communicate with each other. Use PCRESPOND.EXE on the PC console side at the command prompt if you do not have a second board. PCRESPOND.EXE is located with source code in the SAMPLES/LCD_Keypad/Windows directory. When a key on the keypad is pressed, a message associated with that key is sent to a specified destination address and port. The destination then responds to that message. The response is displayed on the LCD. Note that only the LEFT and UP scroll keys are set up to cause a message to be sent. When using TCPSEND.C and TCP_RESPOND.C, connect the OP6800 and the other singleboard computer to an Ethernet. If you connect the them directly, be sure to use a crossover Ethernet cable; straight-through Ethernet cables and a hub may be used instead.
42
MiniCom (OP6800)
5.3 Where Do I Go From Here?
NOTE: If you purchased your OP6800 through a distributor or Rabbit partner, contact the distributor or partner first for technical support.
If there are any problems at this point: * Use the Dynamic C Help menu to get further assistance with Dynamic C. * Check the Rabbit Technical Bulletin Board and forums at www.rabbit.com/support/bb/ and at www.rabbit.com/forums/. * Use the Technical Support e-mail form at www.rabbit.com/support/. If the sample programs ran fine, you are now ready to start developing your own application. Additional sample programs are described in the Dynamic C TCP/IP User's Manual. Refer to the Dynamic C TCP/IP User's Manual to develop your own applications. An Introduction to TCP/IP provides background information on TCP/IP, and is available on the Dynamic C CD and on our Web site.
User's Manual
43
44
MiniCom (OP6800)
6. INSTALLATION AND MOUNTING GUIDELINES
Chapter 6 describes some considerations for mounting the OP6800 in a panel, and includes detailed mounting instructions. 6.1 Installation Guidelines
When possible, following these guidelines when mounting an OP6800. 1. Leave sufficient ventilation space. 2. Do not install the OP6800 directly above machinery that radiates a lot of heat (for example, heaters, transformers, and high-power resistors). 3. Leave at least 8" (20 cm) distance from electric power lines and even more from highvoltage devices. 4. When installing the OP6800 near devices with strong electrical or magnetic fields (such as solenoids), allow a least 3" (8 cm), more if necessary. The OP6800 has strong environmental resistance and high reliability, but you can maximize system reliability by avoiding or eliminating the following conditions at the installation site. * Abrupt temperature changes and condensation * Ambient temperatures exceeding a range of 0C to 50C * Relative humidity exceeding a range of 5% to 95% * Strong magnetism or high voltage * Corrosive gasses * Direct vibration or shock * Excessive iron dust or salt * Spray from harsh chemicals
User's Manual
45
6.2 Mounting Instructions
A bezel and a gasket are included with the OP6800. When properly mounted in a panel, the bezel of the OP6800 is designed to meet NEMA 4 specifications for water resistance. Since the OP6800 employs an LCD display, the viewing angle must be considered when mounting the display. Install the OP6800 at a height and angle that makes it easy for the operator to see the screen. 6.2.1 Bezel-Mount Installation This section describes and illustrates how to bezel-mount the OP6800. Follow these steps for bezel-mount installation. 1. Cut mounting holes in the mounting panel in accordance with the recommended dimensions in Figure 20, then use the bezel faceplate to mount the OP6800 onto the panel.
0.125 D, 4x
(3)
CUTOUT
0.230
(5.8)
2.870
(72.9)
3.100
(78.8)
Figure 20. Recommended Cutout Dimensions
2. Remove the standoffs added to the OP6800 as described in Chapter 2, "Getting Started." The standoffs were used to prop up the OP6800 beside the Demonstration Board, and are not needed to mount the OP6800. 3. Carefully "drop in" the OP6800 with the bezel and gasket attached.
0.130
(3.3)
3.400
(86.4)
46
MiniCom (OP6800)
4. Fasten the unit with the four 4-40 screws and washers included with the OP6800. If your panel is thick, use a 4-40 screw that is approximately 3/16" (5 mm) longer than the thickness of the panel.
OP6800 Bezel/Gasket
R4 LCD1
J1
485 +485
RxC
RxB
OUT00 GND
OUT02 OUT01
OUT04 OUT03
OUT06 OUT05
OUT08 OUT07
OUT10 OUT09
+RAW
IN00 GND
IN02 IN01
IN04 IN03
IN06 IN05
IN08 IN07
IN10 IN09
IN12 IN11
IN14 IN13
IN16 IN15
VBAT IN17
C1
TxC C6
TxB
+K
R3 R2 U1
C8 C9 C7 D2
C2 D3
C3
C4 D4
C5 D5
RP1
RP2
RP3
RN1
U2
C29 GND
GND
EGND
C10
C13
C11 C12
C17 R32 RP4 D6 C24
C14
C15
RP5 C16
Q2
Q4
Q3
Q1
C7
U8 U7
Q5 R13
C30 JP2
R12
R8
JP5
R10 C27 C29
DS2
ACT
R6
JP6
RP6 RP7
RP8
JP1
R5 C25 D11 D7 D13 R17 C26
RP9
R7
R9
C23 C22 C21 C20 C19 C18 Q6 R14
LNK
C32
C1
D12
C28
C31 C30
JP1
R11
DS1
U3
D8 Q8 R18 FlashQ9 EPROM R19 Q10 R20 Q11
D9 R21 Q12
D10
Panel
KP1
R16
Q7
Y2 C2
R15 R24 R25 R23 C33 R28
C28
R26
R39
C44
D1
R27
RT1
R41 R38
R22 JP4 U5
JP3
C34
R16
J2
D3
C35
U2
R18
Y3
U3
C25
R37
D2 R7
U6
C3
R36
C14
C27
C36 U4
D14
C45 R29 U6
C37
R21 R22
R8
Y1 C4 R1 C17
C13
R2
U1
J2
C42
R31 C43
BT1
R9
R13
R15
J3
Figure 21. OP6800 Mounted in Panel (rear view)
Carefully tighten the screws until the gasket is compressed and the plastic bezel faceplate is touching the panel. Do not tighten each screw fully before moving on to the next screw. Apply only one or two turns to each screw in sequence until all are tightened manually as far as they can be so that the gasket is compressed and the plastic bezel faceplate is touching the panel.
User's Manual
Q2
C8
R11 C41
C12 R17
R19
Q4
U7
R20
Q5
C38
C40
J1
Q3
R30
C39
47
48
MiniCom (OP6800)
APPENDIX A. SPECIFICATIONS
Appendix A provides the specifications for the OP6800 and describes the conformal coating.
User's Manual
49
A.1 Electrical and Mechanical Specifications
Figure A-1 shows the mechanical dimensions for the OP6800.
R4 LCD1
J1
485 +485
RxC
RxB
OUT00 GND
OUT02 OUT01
OUT04 OUT03
OUT06 OUT05
OUT08 OUT07
OUT10 OUT09
+RAW
IN00 GND
IN02 IN01
IN04 IN03
IN06 IN05
IN08 IN07
IN10 IN09
IN12 IN11
IN14 IN13
IN16 IN15
VBAT IN17
C1
TxC C6
TxB
+K
R3 R2 U1
C8 C9 C7 D2
C2 D3
C3
C4 D4
C5 D5
RP1
RP2
RP3
RN1
U2
C29 GND
GND
EGND
C10
C13
C11 C12
C17 R32 RP4 D6 C24
C14
C15
RP5 C16
Q2
Q4
Q3
Q1
C7
U8 U7
Q5 R13
C30 JP2
R12
R8
JP5
R10 C27 C29
DS2
ACT
R6
JP6
RP6 RP7
RP8
JP1
R5 C25 C26
RP9
R7
R9
C23 C22 C21 C20 C19 C18 Q6 R14
LNK
C32
C1
D12
D11 D7
C28
C31 C30
JP1
R11
DS1
U3
R16
Q7
R17
R18 FlashQ9 Q8 EPROM
R19
Q10
R20
Q11
R21
Q12 R15
Y2 C2
R26
R39
C44
D1
R27
RT1
R41 R38
JP3 R22 JP4
D3
R24 R25
R23 C33 R28 C34
R16
J2
D2 R7
U6
Y1 C4 R1 C17 C38
C13
R29
C40
Q5
R2
R20
C42
J1
C43 BT1 U1
J2
R13 U7 R31
R9
R15
J3
Q2
C8
Q3
R11
C12 R17
C41
R19
Q4
C39
2.60
(66)
(0,0) for Pin 1 coordinates
3.60
(91)
1.10
(28)
0.30 3.60
(91) (7.6)
Figure A-1. OP6800 Dimensions
NOTE: All measurements are in inches followed by millimeters enclosed in parentheses.
Table A-1 provides the pin 1 locations for the OP6800 headers as viewed in Figure A-1.
Table A-1. OP6800 Header J1 Pin 1 Locations
Header J1
50
Pin 1 (x,y) Coordinates (inches) (-2.101, 2.720)
MiniCom (OP6800)
(28)
U6
1.10
C45
C37
R21 R22
R8
KP1
C3
R36
C36 U4
(44)
R37
C14
C27
D14
1.72
R18
U5
U3
C28
C35
U2
Y3
C25
(77)
D13
3.00
D8
4.50
D9
D10
(114)
R30
It is recommended that you allow for an "exclusion zone" of 0.25" (6 mm) around the OP6800 in all directions when the OP6800 is incorporated into an assembly that includes other components. This "exclusion zone" that you keep free of other components and boards will allow for sufficient air flow, and will help to minimize any electrical or EMI interference between adjacent boards. Figure A-2 shows this "exclusion zone."
(104)
4.10
1.58
(40)
Exclusion Zone
3.60
(91) 5.00
(127)
1.58
(40)
(114)
4.50
Figure A-2. OP6800 "Exclusion Zone"
User's Manual
51
Table A-2 lists the electrical, mechanical, and environmental specifications for the OP6800.
Table A-2. OP6800 Specifications
Feature Microprocessor Ethernet Port Flash EPROM SRAM Backup Battery Keypad/Display LEDs Digital Inputs Digital Outputs OP6800 OP6810
Rabbit(R) 2000 at 22.1 MHz 10Base-T, RJ-45 256K 128K Connection for user-supplied battery (to support RTC and SRAM) 122 x 32 pixel graphic LCD (with programmable backlight), user-relegendable keypad with 7-key/7-LED interface 7 hardware- or software-driven: 1 red, 4 green, 2 yellow 13 total: 8 protected to 36 V DC, 5 protected to 25 V DC 11 total: sink 200 mA, 40 V DC max., 4 with built-in inductive load-protection diode 4 serial ports: * two 3-wire RS-232 or one RS-232 (with CTS/RTS) None
Serial Ports
* one RS-485, onboard network termination and bias resistors * one 5 V CMOS-compatible programming port
Max. burst rate = CLK/32 Max. sustained rate = CLK/64 one RJ-45 (Ethernet) one 2 x 20, 0.1" pitch IDC header one 2 x 20, 0.1" pitch IDC header Yes Five 8-bit timers, one 10-bit timer with two match registers, five timers are cascadable Yes 9 V to 36 V DC, 1.5 W max. Operating Range: 0C to +50C Storage Range: -40C to +85C 5% to 95%, noncondensing 2.60" x 3.00" x 1.10" (66 mm x 76 mm x 28 mm) 4.50" x 3.60" x 0.30" (114 mm x 91 mm x 7.6 mm)
Serial Rate Connectors Real-Time Clock Timers Watchdog/Supervisor Power Temperature Humidity Board Size Bezel Size
52
MiniCom (OP6800)
A.2 Conformal Coating
The areas around the crystal oscillator and the battery backup circuit on the OP6800 module have had the Dow Corning silicone-based 1-2620 conformal coating applied. The conformally coated areas are shown in Figure A-3. The conformal coating protects these high-impedance circuits from the effects of moisture and contaminants over time.
R4 LCD1
J1
485 +485
RxC
RxB
OUT00 GND
OUT02 OUT01
OUT04 OUT03
OUT06 OUT05
OUT08 OUT07
OUT10 OUT09
+RAW
IN00 GND
IN02 IN01
IN04 IN03
IN06 IN05
IN08 IN07
IN10 IN09
IN12 IN11
IN14 IN13
IN16 IN15
VBAT IN17
C1
TxC C6
TxB
+K
R3 R2 U1
C8 C9 C7 D2
C2 D3
C3
C4 D4
C5 D5
RP1
RP2
RP3
RN1
U2
C29 GND
GND
EGND
C10
C13
C11 C12
C17 R32 RP4 D6 C24
C14
C15
RP5 C16
Q2
Q4
Q3
Q1
C7
U8 U7
Q5 R13
R12
R8
C30 JP2
JP5
R10 C27 C29
DS2
ACT
R6
JP6
RP6 RP7
RP8
JP1
R5 C25 C26
RP9
R7
R9
C23 C22 C21 C20 C19 C18 Q6 R14
LNK
C32
C1
D12
D11 D7
C28
C31 C30
JP1
R11
DS1
U3
D13 R17
D8 Q8 R18 FlashQ9 EPROM R19 Q10 R20 Q11
D9 R21 Q12
D10
R16
Q7
Y2 C2
R15 R24 R25 R23 C33 R28
C28
Conformally coated area
D14
R26
R39
C44
D1
R27
RT1
R41 R38
R22 JP4
JP3
C34
C25
J2
U2
R16 C14
D3
C35
R37
C27
R18
U5
U3
Y3
D2 R7
U6
C45
Y1 C4 R1 C38 C17
U6
C37
R21 R22
R8
KP1
C3
R36
C36 U4
C13
R29
C40
Q5 Q4 Q3
R2
C42
J1
C43 BT1 U1
J2
R13 U7 R31
R9
R15
J3
Figure A-3. OP6800 Areas Receiving Conformal Coating
Any components in the conformally coated area may be replaced using standard soldering procedures for surface-mounted components. A new conformal coating should then be applied to offer continuing protection against the effects of moisture and contaminants.
NOTE: For more information on conformal coatings, refer to Rabbit Technical Note 303, Conformal Coatings.
User's Manual
Q2
C8
R11
C12 R17
C41
R19
R20
R30
C39
53
A.3 Jumper Configurations
Figure A-4 shows the header locations used to configure the various OP6800 options via jumpers.
JP1
6 4 2 5 3 1
Figure A-4. Location of BL2100 Configurable Positions
Table A-3 lists the configuration options.
Table A-3. OP6800 Jumper Configurations
Header Description 1-2 5-6 1-3 4-6 Pins Connected Bias and termination resistors connected Bias and termination resistors not connected* Factory Default
JP1
RS-485 Bias and Termination Resistors
x
* Although pins 1-3 and 4-6 of header JP1 are shown "jumpered" for the termination and bias resistors not connected, pins 3 and 4 are not actually connected to anything, and this configuration is a "parking" configuration for the jumpers so that they will be readily available should you need to enable the termination and bias resistors in the future.
54
MiniCom (OP6800)
A.4 Use of Rabbit 2000 Parallel Ports
Figure A-5 shows the Rabbit 2000 parallel ports.
PD0PD1, PD5 PD3PD4
PA0PA7
PB0, PB2, PB4, PB5 PB7
Port A
PC0, PC2 PC1, PC3 PC6 + 1 more output PB1, PC7, RES_IN + 2 more inputs 4 Ethernet signals 2 LED outputs /RESET
(+Serial Ports C & D)
(+synch Serial Port B)
Port B
(+Serial Port B)
Port D
Port C
Programming Port
(Serial Port A)
RABBIT
2000
Real-Time Clock Watchdog 7 Timers Slave Port Clock Doubler
Port E Address Lines
I/O Control
PE0PE1, PE7 PE4PE5 A0A3 IORD IOWR D0D7
Ethernet Port
Misc. I/O RAM
Data Lines
Backup Battery Support
Flash
Figure A-5. OP6800 Rabbit-Based Subsystems
Table A-4 lists the Rabbit 2000 parallel ports and their use in the OP6800.
Table A-4. Use of Rabbit 2000 Parallel Ports
Port PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 I/O Input Input Input Input Input Input Input Input Input Input Input Input IN00 IN01 IN02 IN03 IN04 IN05 IN06 IN07 IN08 Not Used IN09 IN10 Signal Output Function State
Pulled up Pulled up Pulled up Pulled up Pulled up Pulled up Pulled up Pulled up Pulled up Pulled up Pulled up Pulled up
User's Manual
55
Table A-4. Use of Rabbit 2000 Parallel Ports (continued)
Port PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD7 PE0 PE1 PE2 PE3 PE4 PE5 PE6 PE7
56
I/O Input Input Output Output Output Input Output Input Output Input Output Input Input Output Input Output Output Output Output Input Output Output Output Output N/A Output N/A Output Output Output N/A Output Output IN11
Signal
Output Function State
Pulled up
Connected to PB7 Not Used Connected to PB5 TXD RS-485 Serial Port D RXD RS-485 RTS/TXC RS-232 Serial Port C CTS/RXC RS-232 TPOUT- (Realtek reset) TPOUT+ (Realtek INT0) TXA Programming Port Serial Port A RXA Programming Port Realtek CLK (OP6800) Not used (OP6810) Realtek SDO (OP6800) Not used (OP6810) Not used OUT07 ATXB RS-232 Serial Port B ARXB RS-232 Not used Not used RS-485 control register OUT08 Realtek IORB strobe (OP6800) Not used (OP6810) Realtek SDI line (OP6800) Not used (OP6810) OUT09 OUT10 Realtek IOWB strobe (OP6800) Not used (OP6810) LCD_KEYPAD strobe
Driven by PB7
Low Low Inactive high Inactive high Inactive high Inactive high Initialized by sock_init Pulled up Inactive high Pulled up Initialized by sock_init Low Initialized by sock_init Low Low Low (output driver off) Inactive high Inactive high Low Low Low (Tx disabled) Low (output driver off) Initialized by sock_init Low Initialized by sock_init Low Low (output driver off) Low (output driver off) Initialized by sock_init Low Inactive high
MiniCom (OP6800)
A.5 I/O Address Assignments
Table A-5 lists the external I/O addresses for the display and keypad I/O.
Table A-5. Display and Keypad Output Addresses
External Address E000-E007 E008 E00A E00B Name LCD EN KPEN LED LCD control Output enable for LEDs Read keypad and IN12 LED0-LED6 and LCD backlight Function
PE7 serves as a system-enable control and LCD/keypad strobe. When PE7 is high or in a high-impedance status, all OP6800 outputs are disabled (digital outputs and display outputs are disabled, and RS-485 is at listen status).
User's Manual
57
58
MiniCom (OP6800)
APPENDIX B. POWER SUPPLY
Appendix B describes the power circuitry provided on the OP6800. B.1 Power Supplies
Power is supplied to the OP6800 via pins 20 and 21 of header J1, which is connected by a ribbon cable to either the Demonstration Board or to your system. The OP6800 is protected against reverse polarity by a diode at D6 as shown in Figure B-1.
SWITCHING POWER REGULATOR
J1
Vcc
POWER IN
20 21
+RAW
D6
VIN C40 47 F
7
U4
4 8 1
6
LM2675
5
C36 10 nF
L1 D14 1N5819
47 H
C39 47 F
Figure B-1. OP6800 Power Supply
The input voltage range is from 9 V to 36 V. A switching power regulator is used to provide a Vcc of +5 V for the OP6800 logic circuits. Vcc is not accessible to the user.
NOTE: In addition to supplying +RAW to the OP6800 switching power regulator, the Demonstration Board has its own independent linear power regulator to supply the electronics in the demonstration area of the Demonstration Board. See Appendix C for more information.
User's Manual
59
B.2 Batteries and External Battery Connections
The SRAM and the real-time clock have provision for battery backup. Power to the SRAM and the real-time clock (VRAM) is provided by two different sources, depending on whether the main part of the OP6800 is powered or not. When the OP6800 is powered normally, and Vcc is within operating limits, the SRAM and the real-time clock are powered from Vcc. If power to the board is lost or falls below 4.63 V, the VRAM and real-time clock power must come from a backup battery in your system which you would connect to pin 40 of header J1 on the OP6800 via the ribbon cable. The backup battery should be able to supply 2.85 V- 3.15 V at 10 A. The reset generator circuit controls the source of power by way of its /RESET output signal. B.2.1 Battery-Backup Circuit Figure B-1 shows the battery-backup circuit located on the OP6800 module.
External Battery
VBAT J1:40
D3
R39 2 kW T RT1
thermistor
VRAM
22 kW R41 47 kW Vcc D2 VBAT C17 10 nF D1 R38 10 kW R37 22 kW R36 47 kW C27 10 nF VOSC
Figure B-1. OP6800 Backup Battery Circuit
The battery-backup circuit serves three purposes: * It reduces the battery voltage to the SRAM and to the real-time clock, thereby limiting the current consumed by the real-time clock and lengthening the battery life. * It ensures that current can flow only out of the battery to prevent charging the battery. * A voltage, VOSC, is supplied to U6, which keeps the 32.768 kHz oscillator working when the voltage begins to drop. VRAM and Vcc are nearly equal (<100 mV, typically 10 mV) when power is supplied to the OP6800.
60
MiniCom (OP6800)
B.2.2 Power to VRAM Switch The VRAM switch on the OP6800 module, shown in Figure B-1, allows the battery backup to provide power when the external power goes off. The switch provides an isolation between Vcc and the battery when Vcc goes low. This prevents the Vcc line from draining the battery.
VCC VRAM
R33
0W
Q5 FDV302P
R30
10 kW
/RESET
R17
22 kW
Q2 MMBT3904
Figure B-1. VRAM Switch
Field-effect transistor Q5 is needed to provide a very small voltage drop between Vcc and VRAM (<100 mV, typically 10 mV) so that the board components powered by Vcc will not have a significantly different voltage than VRAM. When the OP6800 is not in reset, the /RESET line will be high. This turns on Q2, causing its collector to go low. This turns on Q5, allowing VRAM to nearly equal Vcc. When the OP6800 is in reset, the /RESET line will go low. This turns off Q2 and Q5, providing an isolation between Vcc and VRAM. B.2.3 Reset Generator The OP6800 module uses a reset generator on the module, U1, to reset the Rabbit 2000 microprocessor when the voltage drops below the voltage necessary for reliable operation. The reset occurs between 4.50 V and 4.75 V, typically 4.63 V.
User's Manual
61
B.3 Chip Select Circuit
Figure B-1 shows a schematic of the chip select circuit located on the OP6800 module.
VRAM R28 100 kW
/CSRAM /CS1
Q3
Q4
VRAM SWITCH
/RESET_OUT
Figure B-1. Chip Select Circuit
The current drain on the battery in a battery-backed circuit must be kept at a minimum. When the OP6800 is not powered, the battery keeps the SRAM memory contents and the real-time clock (RTC) going. The SRAM has a powerdown mode that greatly reduces power consumption. This powerdown mode is activated by raising the chip select (CS) signal line. Normally the SRAM requires Vcc to operate. However, only 2 V is required for data retention in powerdown mode. Thus, when power is removed from the circuit, the battery voltage needs to be provided to both the SRAM power pin and to the CS signal line. The CS control circuit accomplishes this task for the SRAM's chip select signal line. In a powered-up condition, the CS control circuit must allow the processor's chip select signal /CS1 to control the SRAM's CS signal /CSRAM. So, with power applied, /CSRAM must be the same signal as /CS1, and with power removed, /CSRAM must be held high (but only needs to be battery voltage high). Q3 and Q4 are MOSFET transistors with complementary polarity. They are both turned on when power is applied to the circuit. They allow the CS signal to pass from the processor to the SRAM so that the processor can periodically access the SRAM. When power is removed from the circuit, the transistors will turn off and isolate /CSRAM from the processor. The isolated /CSRAM line has a 100 k pullup resistor to VRAM (R28). This pullup resistor keeps /CSRAM at the VRAM voltage level (which under no power condition is the backup battery's regulated voltage at a little more than 2 V). Transistors Q3 and Q4 are of opposite polarity so that a rail-to-rail voltage can be passed. When the /CS1 voltage is low, Q3 will conduct. When the /CS1 voltage is high, Q4 conducts. It takes time for the transistors to turn on, creating a propagation delay. This propagation delay is typically very small, about 10 ns to 15 ns.
62 MiniCom (OP6800)
APPENDIX C. DEMONSTRATION BOARD
Appendix C describes the features and accessories of the Demonstration Board, and explains the use of the Demonstration Board to demonstrate the OP6800 and to build prototypes of your own circuits.
User's Manual
63
C.1 Mechanical Dimensions and Layout
Figure C-1 shows the mechanical dimensions and layout for the OP6800 Demonstration Board.
IN00 IN01 IN02 +5 V GND +5 V GND +K IN03 IN04 0V IN05 IN06 IN07 IN08 IN09 +K IN10 0V IN11 IN12 IN13 IN14 IN15 GND GND +5 V +RAW +RAW RxC IN16 0V +5 V +5 V GND TxC IN17 RxB VBAT TxB 0V
VBAT IN16 IN14 IN12 IN10 IN08 IN06 IN04 IN02 IN00 +RAW OUT10 OUT08 OUT06 OUT04 OUT02 OUT00 RxB RxC 485
IN17 IN15 IN13 IN11 IN09 IN07 IN05 IN03 IN01 GND
LS1
Buzzer
C1 JP1
OUT09 OUT07 OUT05 OUT03 OUT01 GND TxB TxC +485
1
C2
C3
GND +5 V
J1 J3
J11 J6
J5
GND +RAW + RS485 +K OUT10 OUT09 OUT08 OUT07 OUT06 OUT05 OUT04 OUT03 OUT02 OUT01 OUT00
(107)
4.20
Figure C-1. OP6800 Demonstration Board Dimensions
Table C-1 lists the electrical, mechanical, and environmental specifications for the Demonstration Board.
Table C-1. Demonstration Board Specifications
Parameter Board Size Operating Temperature Humidity Input Voltage Specification 3.40" x 4.20" x 1.19" (87 mm x 107 mm x 30 mm) -40C to +70C 5% to 95%, noncondensing 7.5 V to 25 V DC
Maximum Current Draw 140 mA at 12 V and 25C, 100 mA at 12 V and 70C (including user-added circuits) Prototyping Area Standoffs/Spacers 1.7" x 2.1" (43 mm x 53 mm) through hole, 0.1" spacing 4, accept 4-40 x 11/8 screws
64
DS4
DS3 DS2 DS1
3 HOT!
RP1
MiniCom (OP6800)
3.40
+K
(87)
S1
U1
S2
S3
S4
J8 J10
J2
J4
C.2 Power Supply
The OP6800 requires an unregulated +RAW power input of 9 V to 36 V DC, which can be supplied from the Demonstration Board through the ribbon cable connection. The OP6800 has its own switching voltage regulator. Figure C-2 shows the distribution of the +RAW input power to the OP6800 through the Demonstration Board. The reference grounds on the OP6800, GND, and on the Demonstration Board, 0 V, are tied together at one connection point only to avoid creating a ground loop, which could lead to considerable electromagnetic interference.
Demonstration Board
Linear Regulator
+5 V 0V
+RAW
GND
OP6800
Switching Regulator
+5 V
GND
Figure C-2. Power Distribution to OP6800 and Demonstration Board
User's Manual
65
The Demonstration Board has an onboard LM7805 linear regulator for the circuits on the Demonstration Board only. Its major drawback is its inefficiency, which is directly proportional to the voltage drop across it. The voltage drop creates heat and wastes power. You may wish to use a switching power supply in your applications where better efficiency is desirable. The LM2575 is an example of an easy-to-use switching voltage regulator. This part greatly reduces the heat dissipation of the regulator. The drawback in using a switching voltage regulator is its higher cost.
LINEAR POWER SUPPLY
Vcc J5 7805 U1
2
POWER IN
2 1
+RAW C1 10 mF
1
3
C2 10 mF
Figure C-3. Demonstration Board Power Supply
Capacitor C1 provides surge current protection for the voltage regulator, and allows the external power supply to be located some distance away. Be careful to limit the current draw in any prototype circuits you build on the prototyping area of the Demonstration Board to avoid operating the linear regulator outside its recommended limits. The LEDs and buzzer together can draw up to 70 mA, which still leaves some current capacity for your own circuits (see Table C-1) if you plan to use them with the LEDs and the buzzer. If you need additional current from the linear regulator beyond that specified in Table C-1, consider adding a heat sink to the linear regulator (remember to use silicone grease between the tab and the heat sink), or use a lower voltage power supply.
66
MiniCom (OP6800)
C.3 Using the Demonstration Board
The Demonstration Board is actually both a demonstration board and a prototyping board. As a demonstration board, it can be used to demonstrate the functionality of the OP6800 right out of the box without any modifications to either board. There are no jumpers or dip switches to configure or misconfigure on the Demonstration Board so that the initial setup is very straightforward. The Demonstration Board comes with the basic components necessary to demonstrate the operation of the OP6800. Four LEDs (DS1-DS4) are connected to OUT07-OUT10, and four switches (S1-S4) are connected to IN00-IN03 to demonstrate the interface to the OP6800. The Demonstration Board has a buzzer that is normally off. The buzzer can be enabled to be on by setting the jumper across pins 1-2 on header JP1 on the Demonstration Board as shown in Figure C-4. When enabled on, the buzzer will sound whenever the OUT0 digital output on the OP6800 is on.
IN00 IN01 IN02 +5 V GND +5 V GND +K IN03 IN04 0V IN05 IN06 IN07 IN08 IN09 +K IN10 0V IN11
0V
VBAT IN16 IN14 IN12 IN10
IN17 IN15 IN13 IN11 IN09 IN07 IN05 IN03 IN01 GND +K OUT09 OUT07 OUT05 OUT03 OUT01 GND TxB TxC +485
+5 V
LS1
GND
3 2 1 JP1
IN08 IN06 IN04 IN02 IN00 +RAW OUT10 OUT08 OUT06 OUT04 OUT02 OUT00 RxB RxC 485
Buzzer
C1 JP1
1
C2
+5 V GND
C3
GND +5 V +RAW +RAW GND +5 V
J1 J3
J11 J6
J5
GND +RAW TxB RxB TxC RxC + RS485 +K OUT10 OUT09 OUT08 OUT07 OUT06 OUT05 OUT04 OUT03 OUT02 OUT01 OUT00
Figure C-4. Demonstration Board Header JP1 (Buzzer On/Off)
User's Manual
DS4
DS3 DS2 DS1
3 HOT!
RP1
S1
U1
S2
S3
S4
J10
J2
Factory Default
J8
J4
IN12
IN13
IN14
IN15
IN16
IN17
VBAT
0V
67
The Demonstration Board provides the user with OP6800 connection points brought out conveniently to labeled points at headers J4, J5, J6, and J8 on the Demonstration Board. Small to medium circuits can be prototyped using point-to-point wiring with 20 to 30 AWG wire on the prototyping area. The holes are spaced at 0.1" (2.5 mm). The pinouts for headers J4, J5, J6, and J8 are shown in Figure C-5.
DS4 +5 V GND GND DS3 DS2 DS1 3 HOT! C3 1 C2
OUT07 OUT05 OUT03 OUT01 +485 GND TxC TxB RxB OUT08 OUT06 OUT04 OUT02 OUT00 RxC 485
IN00 IN01 IN02 IN03 IN04 IN05 IN06 IN07 IN08 IN09 IN10 IN11 IN12 IN13 IN14 IN15 IN16 IN17 VBAT 0V
1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8
J8
+5 V 0V
GND +5 V U1 +RAW
J4
LS1
Buzzer
C1
OUT09
GND
IN17
IN15
IN13
IN09
IN07
IN05
IN03
IN01
IN11
+K
VBAT
+RAW
IN16
IN14
IN12
IN10
IN08
IN06
IN04
IN02
IN00
Figure C-5. OP6800 Demonstration Board Pinout
68
OUT10
RP1
S1
S2 JP1
S3
S4 J8
J6
+K
12 11 10 9 8 7 6 5 4 3 2 1
OUT00 OUT01 OUT02 OUT03 OUT04 OUT05 OUT06 OUT07 OUT08 OUT09 OUT10 +K
8 7 6
RS-485 RS-485+ RxC TxC RxB TxB +RAW GND
J5
5 4 3 2 1
J1
MiniCom (OP6800)
The Demonstration Board can then be rotated and mounted behind the OP6800 as shown in Figure C-6 to allow the Demonstration Board and the OP6800 to be used together.
0V
0V
0V +5 V GND
VBAT IN16 IN14 IN12 IN10 IN08 IN06 IN04 IN02 IN00 +RAW OUT10 OUT08 OUT06 OUT04 OUT02 OUT00 RxB RxC 485
IN17 IN15 IN13 IN11 IN09 IN07 IN05 IN03 IN01 GND +K OUT09 OUT07 OUT05 OUT03 OUT01 GND TxB TxC +485
+5 V
LS1
GND
+5 V GND
Buzzer
C1 JP1
1
C2
+5 V GND
C3
GND +5 V +RAW +RAW +K GND +5 V +K
J1 J3
J11 J6
J5
GND +RAW TxB RxB TxC RxC + RS485 +K OUT10 OUT09 OUT08 OUT07 OUT06 OUT05 OUT04 OUT03 OUT02 OUT01 OUT00
J7
Figure C-6. Mounting Demonstration Board on OP6800
NOTE: Remove the standoffs behind the OP6800 before attempting to mount the Demonstration Board.
The OP6800 may also be panel-mounted with the Demonstration Board attached. Follow the instructions in Chapter 6, "Installation and Mounting Guidelines." Use 4-40 screws that are l 3/16" (plus the thickness of the panel) in length. Note that the Demonstration Board and the OP6800 end up on opposite sides of the panel as shown in Figure C-7.
OP6800 Bezel/Gasket
Demonstration Board
J1 R1 LCD1
C1
1C
R3 R2 U1
3 1 !TOH
C8 C9R4 C7 D2
C2 D3
C3
C4 D4
C5 D5
RP1
RP2
RP3
RN1
1SL
U2
C29 GND
GND
EGND
1U
C17 R32 RP4 D6 C24
C7
U8 U7
Q5 R13
C30 JP2
R12
R8
JP5
R10 C27 C29
DS2
ACT
R6
JP6
RP6 RP7
RP8
JP1
RP9
LNK
C1
D12
D11 D7
Q6 R14
JP1
R11
DS1
U3
D13 R17
D8 Q8 R18 FlashQ9 EPROM R19 Q10 R20 Q11
D9 R21 Q12
D10
Panel
KP1
R16
Q7
Y2 C2
R15 R24 R25 R23 C33 R28
C28
R26
R39
C44
D1
R27
RT1
R41 R38
R22 JP4 U5
JP3 J2
C34
R16
D3
C35
U2
R18
Y3
U3
C25
R37
D2 R7
U6
C3
R36
C14
C27
C36 U4
D14
C45 R29 U6 C38
C37
R21 R22
R8
Y1 C4 R1 C17
C13
C40
Q5
R2
U1
J2
C42
R31 C43
BT1
R9
R13
R15
J3
Figure C-7. OP6800 with Demonstration Board Mounted in Panel (rear view)
User's Manual 69
Q2
C8
R11 C41
C12 R17
R19
Q4
U7
R20
J1
Q3
C39
DS4
DS3 DS2 DS1
3 HOT!
RP1
S1
IN16 VBAT IN15 IN17
U1
S2
IN14 IN13
S3
S4
J8 J10
IN00
IN01
IN02
IN03
IN04
IN05
IN06
IN07
IN08
IN09
IN10
IN11
J2
J4
485 +485 RxC TxC R5 C25 C26 C6 RxB TxB C10 OUT00 GND OUT02 OUT01 OUT04 OUT03 OUT06 OUT05 Q1 OUT08 OUT07 Q2 R7 OUT10 OUT09 Q3 +RAW +K R9 IN00 GND Q4 IN02 IN01 C11 C12 C28 IN04 IN03 IN06 IN05 C14 C31 C30 IN08 IN07 C15 IN10 IN09 RP5 C16 C32 IN12 IN11 C13 C23 C22 C21 C20 C19 C18 R30
IN12
IN13
IN14
IN15
IN16
IN17
VBAT
0V
70
MiniCom (OP6800)
APPENDIX D. OP6800 FUNCTION CALLS
Appendix D provides the function calls related to the operation of the OP6800 board, I/O, serial channels, display, and keypad.
User's Manual
71
D.1 Board Initialization (OP68xx.LIB) void brdInit (void);
Call this function at the beginning of your program. This function initializes the system I/O ports. This function also turns off LED DS1 to indicate that the initialization was successful. The ports are initialized according to Table A-4.
SEE ALSO digIn, digOut, serMode, ledOut
72
MiniCom (OP6800)
D.2 Digital I/O (OP68xx.LIB) int digIn(int channel);
Reads the state of an input channel. A runtime error will occur if brdInit was not executed before executing digIn, or when channel is out of range.
PARAMETER
channel is the input channel number (0-12), where IN00-IN12 are the normal user digital inputs.
RETURN VALUE
The state of the input (0 or 1).
SEE ALSO brdInit, digOut, ledOut
void digOut(int channel, int value);
Sets the state of a digital output (OUT00-OUT10). Remember to call the brdInit function before executing this function. A runtime error will occur if brdInit was not executed before executing digOut, or when channel or value is out of range.
NOTE: The LEDs and digital outputs OUT00-OUT06 are driven by the same driver chip. Do not use both ledOut and digOut to control the same LED or digital output in a given application.
PARAMETERS
channel is the output channel number (0-10). value is the output value (0 or 1).
SEE ALSO brdInit, digIn, ledOut
User's Manual
73
D.3 Serial Communication (OP68xx.LIB)
Library files included with Dynamic C provide a full range of serial communications support. The RS232.LIB library provides a set of circular-buffer-based serial functions. The PACKET.LIB library provides packet-based serial functions where packets can be delimited by the 9th bit, by transmission gaps, or with user-defined special characters. Both libraries provide blocking functions, which do not return until they are finished transmitting or receiving, and nonblocking functions, which must be called repeatedly until they are finished. For more information, see the Dynamic C User's Manual and Technical Note TN213, Rabbit 2000 Serial Port Software. Use the following function calls with the OP6800.
int serMode(int mode);
User interface to set up OP6800 serial communication lines. Call this function after serXOpen(). Whether you are opening one or multiple serial ports, this function must be executed after executing the last serXOpen function AND before you start using any of the serial ports. This function is non-reentrant. If Mode 1 is selected, CTS/RTS flow control is exercised using the serCflowcontrolOn and serCflowcontrolOff functions from the RS232.LIB library.
PARAMETER
mode is the defined serial port configuration
. Serial Port Mode B C D
0 1
RETURN VALUE
RS-232, 3-wire RS-232, 5-wire
RS-232, 3-wire CTS/RTS
RS-485 RS-485
0 if valid mode, 1 if not.
SEE ALSO ser485Tx, ser485Rx
NOTE: Be sure to call serMode before either of the next two functions.
void ser485Tx(void);
Sets pin 3 (DE) high to enable the RS-485 transmitter. Remember to call serMode before calling
ser485Tx.
SEE ALSO serMode, ser485Rx
74
MiniCom (OP6800)
void ser485Rx(void);
Resets pin 3 (DE) low to disable the RS-485 transmitter. Remember to call serMode before calling
ser485Rx.
SEE ALSO serMode, ser485Tx, serCflowcontrolOn, serCflowcontrolOff
User's Manual
75
D.4 LEDs (OP68xx.LIB)
When power is applied to the OP6800 for the first time, the red LED (DS1) will come on, indicating that power is being applied to the OP6800. The red LED is turned off when the brdInit function executes. The LEDs are in series with the open-ouput collector that drives digital outputs OUT00- OUT06, and so the same function call that turns on one of these digital outputs will also turn on the corresponding LED.
void ledOut(int led, int value);
LED on/off control. A runtime error will occur if brdInit was not executed before executing ledOut, or when led or value is out of range.
NOTE: The LEDs and digital outputs OUT00-OUT06 are driven by the same driver chip. Do not use both ledOut and digOut to control the same LED or digital output in a given application.
PARAMETERS
led is the LED to control.
0 = LED DS1 1 = LED DS2 2 = LED DS3 3 = LED DS4 4 = LED DS5 5 = LED DS6 6 = LED DS7
value is the value used to control whether the LED is on or off (0 or 1).
0 = off 1 = on
RETURN VALUE
None.
SEE ALSO brdInit, digOut
76
MiniCom (OP6800)
D.5 LCD Display
The functions used to control the LCD display are contained in the GRAPHIC.LIB library located in the Dynamic C LIB\DISPLAYS\GRAPHIC library directory. When x and y coordinates on the display screen are specified, x can range from 0 to 121, and y can range from 0 to 31. These numbers represent pixels from the top left corner of the display.
void glInit(void);
Initializes the display devices, clears the screen.
RETURN VALUE
None.
SEE ALSO glDispOnOFF, glBacklight, glSetContrast, glPlotDot, glBlock, glPlotDot, glPlotPolygon, glPlotCircle, glHScroll, glVScroll, glXFontInit, glPrintf, glPutChar, glSetBrushType, glBuffLock, glBuffUnlock, glPlotLine
void glBackLight(int onOff);
Turns the display backlight on or off.
PARAMETER
onOff turns the backlight on or off 1--turn the backlight on 0--turn the backlight off
RETURN VALUE
None.
SEE ALSO glInit, glDispOnoff, glSetContrast
void glDispOnOff(int onOff);
Sets the LCD screen on or off. Data will not be cleared from the screen.
PARAMETER
onOff turns the LCD screen on or off 1--turn the LCD screen on 0--turn the LCD screen off
RETURN VALUE
None.
SEE ALSO glInit, glSetContrast, glBackLight
User's Manual
77
void glSetContrast(unsigned level);
Sets display contrast. NOTE: This function is not used with the OP6800 since the support circuits are not available on the LCD/keypad module used with the OP6800.
void glFillScreen(int pattern);
Fills the LCD display screen with a pattern.
PARAMETER
The screen will be set to all black if pattern is 0xFF, all white if pattern is 0x00, and vertical stripes for any other pattern.
RETURN VALUE
None.
SEE ALSO glBlock, glBlankScreen, glPlotPolygon, glPlotCircle
void glBlankScreen(void);
Blanks the LCD display screen (sets LCD display screen to the background color).
RETURN VALUE
None.
SEE ALSO glFillScreen, glBlock, glPlotPolygon, glPlotCircle
void glFillRegion(int left, int top, int width, int height, char pattern);
Fills a rectangular block in the LCD buffer with the pattern specified. Any portion of the block that is outside the LCD display area will be clipped.
PARAMETERS
left is the x coordinate of the top left corner of the block. top is the y coordinate of the top left corner of the block. width is the width of the block. height is the height of the block. pattern is the bit pattern to display (all black if pattern is 0xFF, all white if pattern is 0x00, and vertical stripes for any other pattern).
RETURN VALUE
None.
SEE ALSO glFillScreen, glBlankScreen, glBlock, glBlankRegion
78
MiniCom (OP6800)
void glFastFillRegion(int left, int top, int width, int height, char pattern);
Fills a rectangular block in the LCD buffer with the pattern specified. The block left and width parameters must be byte-aligned. Any portion of the block that is outside the LCD display area will be clipped.
PARAMETERS
left is the x coordinate of the top left corner of the block. top is the y coordinate of the top left corner of the block. width is the width of the block. height is the height of the block. pattern is the bit pattern to display (all black if pattern is 0xFF, all white if pattern is 0x00, and vertical stripes for any other pattern).
RETURN VALUE
None.
SEE ALSO glFillScreen, glBlankScreen, glBlock, glBlankRegion
void glBlankRegion(int left, int top, int width, int height);
Clears a region on the LCD display. The block left and width parameters must be byte-aligned. Any portion of the block that is outside the LCD display area will be clipped.
PARAMETERS
left is the x coordinate of the top left corner of the block (x must be evenly divisible by 8). top is the y coordinate of the top left corner of the block. width is the width of the block (must be evenly divisible by 8). height is the height of the block.
RETURN VALUE
None.
SEE ALSO glFillScreen, glBlankScreen, glBlock
User's Manual
79
void glBlock(int left, int top, int width, int height);
Draws a rectangular block in the page buffer and on the LCD if the buffer is unlocked. Any portion of the block that is outside the LCD display area will be clipped.
PARAMETERS
left is the x coordinate of the top left corner of the block. top is the y coordinate of the top left corner of the block. width is the width of the block. height is the height of the block.
RETURN VALUE
None.
SEE ALSO glFillScreen, glBlankScreen, glPlotPolygon, glPlotCircle
void glPlotVPolygon(int n, int *pFirstCoord);
Plots the outline of a polygon in the LCD page buffer, and on the LCD if the buffer is unlocked. Any portion of the polygon that is outside the LCD display area will be clipped. If fewer than 3 vertices are specified, the function will return without doing anything.
PARAMETERS
n is the number of vertices. pFirstCoord is a pointer to array of vertex coordinates: x1,y1, x2,y2, x3,y3, ...
RETURN VALUE
None.
SEE ALSO glPlotPolygon, glFillPolygon, glFillVPolygon
80
MiniCom (OP6800)
void glPlotPolygon(int n, int y1, int x1, int y2, int x2, ...);
Plots the outline of a polygon in the LCD page buffer and on the LCD if the buffer is unlocked. Any portion of the polygon that is outside the LCD display area will be clipped. If fewer than 3 vertices are specified, the function will return without doing anything.
PARAMETERS
n is the number of vertices. y1 is the y coordinate of the first vertex. x1 is the x coordinate of the first vertex. y2 is the y coordinate of the second vertex. x2 is the x coordinate of the second vertex. ... are the coordinates of additional vertices.
RETURN VALUE
None.
SEE ALSO glPlotVPolygon, glFillPolygon, glFillVPolygon
void glFillVPolygon(int n, int *pFirstCoord);
Fills a polygon in the LCD page buffer and on the LCD screen if the buffer is unlocked. Any portion of the polygon that is outside the LCD display area will be clipped. If fewer than 3 vertices are specified, the function will return without doing anything.
PARAMETERS
n is the number of vertices. pFirstCoord is a pointer to array of vertex coordinates: x1,y1, x2,y2, x3,y3, ...
RETURN VALUE
None.
SEE ALSO glFillPolygon, glPlotPolygon, glPlotVPolygon
User's Manual
81
void glFillPolygon(int n, int x1, int y1, int x2, int y2, ...);
Fills a polygon in the LCD page buffer and on the LCD if the buffer is unlocked. Any portion of the polygon that is outside the LCD display area will be clipped. If fewer than 3 vertices are specified, the function will return without doing anything.
PARAMETERS
n is the number of vertices. x1 is the x coordinate of the first vertex. y1 is the y coordinate of the first vertex. x2 is the x coordinate of the second vertex. y2 is the y coordinate of the second vertex. ... are the coordinates of additional vertices.
RETURN VALUE
None.
SEE ALSO glFillVPolygon, glPlotPolygon, glPlotVPolygon
void glPlotCircle(int xc, int yc, int rad);
Draws the outline of a circle in the LCD page buffer and on the LCD if the buffer is unlocked. Any portion of the circle that is outside the LCD display area will be clipped.
PARAMETERS
xc is the x coordinate of the center of the circle. yc is the y coordinate of the center of the circle. rad is the radius of the center of the circle (in pixels).
RETURN VALUE
None.
SEE ALSO glFillCircle, glPlotPolygon, glFillPolygon
void glFillCircle(int xc, int yc, int rad);
Draws a filled circle in the LCD page buffer and on the LCD if the buffer is unlocked. Any portion of the circle that is outside the LCD display area will be clipped.
PARAMETERS
xc is the x coordinate of the center of the circle. yc is the y coordinate of the center of the circle. rad is the radius of the center of the circle (in pixels).
RETURN VALUE
None.
SEE ALSO glPlotCircle, glPlotPolygon, glFillPolygon
82
MiniCom (OP6800)
void glXFontInit(fontInfo *pInfo, char pixWidth, char pixHeight, unsigned startChar, unsigned endChar, unsigned long xmemBuffer);
Initializes the font descriptor structure, where the font is stored in xmem. Each font character's bitmap is column major and byte-aligned.
PARAMETERS
pInfo is a pointer to the font descriptor to be initialized. pixWidth is the width (in pixels) of each font item. pixHeight is the height (in pixels) of each font item. startChar is the value of the first printable character in the font character set. endChar is the value of the last printable character in the font character set. xmemBuffer is the xmem pointer to a linear array of font bitmaps.
RETURN VALUE
None.
SEE ALSO glPrinf
unsigned long glFontCharAddr(fontInfo *pInfo, char letter);
Returns the xmem address of the character from the specified font set.
PARAMETERS
*pInfo is the xmem address of the bitmap font set. letter is an ASCII character.
RETURN VALUE
xmem address of bitmap character font, column major and byte-aligned.
SEE ALSO glPutFont, glPrintf
User's Manual
83
void glPutFont(int x, int y, fontInfo *pInfo, char code);
Puts an entry from the font table to the page buffer and on the LCD if the buffer is unlocked. Each font character's bitmap is column major and byte-aligned. Any portion of the bitmap character that is outside the LCD display area will be clipped.
PARAMETERS
x is the x coordinate (column) of the top left corner of the text. y is the y coordinate (row) of the top left corner of the text. pInfo is a pointer to the font descriptor. code is the ASCII character to display.
RETURN VALUE
None.
SEE ALSO glFontCharAddr, glPrintf
void glSetPfStep(int stepX, int stepY);
Sets the glPrintf() printing step direction. The x and y step directions are independent signed values. The actual step increments depend on the height and width of the font being displayed, which are multiplied by the step values.
PARAMETERS
stepX is the glPrintf x step value stepY is the glPrintf y step value
RETURN VALUE
None.
SEE ALSO
Use glGetPfStep() to examine the current x and y printing step direction.
int glGetPfStep(void);
Gets the current glPrintf() printing step direction. Each step direction is independent of the other, and is treated as an 8-bit signed value. The actual step increments depends on the height and width of the font being displayed, which are multiplied by the step values.
RETURN VALUE
The x step is returned in the MSB, and the y step is returned in the LSB of the integer result.
SEE ALSO
Use glGetPfStep() to control the x and y printing step direction.
84
MiniCom (OP6800)
void glPutChar(char ch, char *ptr, int *cnt, glPutCharInst *pInst)
Provides an interface between the STDIO string-handling functions and the graphic library. The STDIO string-formatting function will call this function, one character at a time, until the entire formatted string has been parsed. Any portion of the bitmap character that is outside the LCD display area will be clipped.
PARAMETERS
ch is the character to be displayed on the LCD. *ptr is not used, but is a place holder for STDIO string functions. *cnt is not used, is a place holder for STDIO string functions. pInst is a pointer to the font descriptor.
RETURN VALUE
None.
SEE ALSO glPrintf, glPutFont, doprnt
void glPrintf(int x, int y, fontInfo *pInfo, char *fmt, ...);
Prints a formatted string (much like printf) on the LCD screen. Only the character codes that exist in the font set are printed, all others are skipped. For example, '\b', '\t', '\n' and '\r' (ASCII backspace, tab, new line, and carriage return, respectively) will be printed if they exist in the font set, but will not have any effect as control characters. Any portion of the bitmap character that is outside the LCD display area will be clipped.
PARAMETERS
x is the x coordinate (column) of the upper left corner of the text. y is the y coordinate (row) of the upper left corner of the text. pInfo is a pointer to the font descriptor. *fmt is a formatted string. ... are formatted string conversion parameter(s).
EXAMPLE glprintf(0,0, &fi12x16, "Test %d\n", count); RETURN VALUE
None.
SEE ALSO glXFontInit
User's Manual
85
void glBuffLock(void);
Increments LCD screen locking counter. Graphic calls are recorded in the LCD memory buffer and are not transferred to the LCD if the counter is non-zero.
NOTE: glBuffLock() and glBuffUnlock() can be nested up to a level of 255, but be sure to balance the calls. It is not a requirement to use these procedures, but a set of glBuffLock() and glBuffUnlock() bracketing a set of related graphic calls speeds up the rendering significantly.
RETURN VALUE
None.
SEE ALSO glBuffUnlock, glSwap
void glBuffUnlock(void);
Decrements the LCD screen locking counter. The contents of the LCD buffer are transferred to the LCD if the counter goes to zero.
RETURN VALUE
None.
SEE ALSO glBuffLock, glSwap
void glSwap(void);
Checks the LCD screen locking counter. The contents of the LCD buffer are transferred to the LCD if the counter is zero.
RETURN VALUE
None.
SEE ALSO glBuffUnlock, glBuffLock, _glSwapData (located in the library specifically for the LCD
that you are using)
void glSetBrushType(int type);
Sets the drawing method (or color) of pixels drawn by subsequent graphic calls.
PARAMETER
type value can be one of the following macros. PIXBLACK draws black pixels (turns pixel on). PIXWHITE draws white pixels (turns pixel off). PIXXOR draws old pixel XOR'ed with the new pixel.
RETURN VALUE
None.
SEE ALSO glGetBrushType
86
MiniCom (OP6800)
int glGetBrushType(void);
Gets the current method (or color) of pixels drawn by subsequent graphic calls.
RETURN VALUE
The current brush type.
SEE ALSO glSetBrushType
void glXGetBitmap(int x, int y, int bmWidth, int bmHeight, unsigned long xBm);
Gets a bitmap from the LCD page buffer and stores it in xmem RAM. This function automatically calls glXGetFastmap if the left edge of the bitmap is byte-aligned and the left edge and width are each evenly divisible by 8. Any portion of a bitmap image or character that is outside the LCD display area will be clipped. This function call is intended for use only when a graphic engine is used to interface with the LCD/keypad module.
PARAMETERS
x is the x coordinate in pixels of the top left corner of the bitmap (x must be evenly divisible by 8). y is the y coordinate in pixels of the top left corner of the bitmap. bmWidth is the width in pixels of the bitmap (must be evenly divisible by 8). bmHeight is the height in pixels of the bitmap. xBm is the xmem RAM storage address of the bitmap.
RETURN VALUE
None.
void glXGetFastmap(int left, int top, int width, int height, unsigned long xmemptr);
Draws bitmap in the specified space. The data for the bitmap are stored in xmem. This function is similar to glXPutBitmap, except that it's faster. The bitmap must be byte-aligned. Any portion of a bitmap image or character that is outside the LCD display area will be clipped. This function call is intended for use only when a graphic engine is used to interface with the LCD/keypad module.
PARAMETERS
left is the x coordinate of the top left corner of the bitmap (x must be evenly divisible by 8). top is the y coordinate in pixels of the top left corner of the bitmap. width is the width of the bitmap (must be evenly divisible by 8). height is the height of the bitmap. xmemptr is the xmem RAM storage address of the bitmap.
RETURN VALUE
None.
SEE ALSO glXPutBitmap, glPrintf
User's Manual
87
void glPlotDot(int x, int y);
Draws a single pixel in the LCD buffer, and on the LCD if the buffer is unlocked. If the coordinates are outside the LCD display area, the dot will not be plotted.
PARAMETERS
x is the x coordinate of the dot. y is the y coordinate of the dot.
RETURN VALUE
None.
SEE ALSO glPlotline, glPlotPolygon, glPlotCircle
void glPlotLine(int x0, int y0, int x1, int y1);
Draws a line in the LCD buffer, and on the LCD if the buffer is unlocked. Any portion of the line that is beyond the LCD display area will be clipped.
PARAMETERS
x0 is the x coordinate of one endpoint of the line. y0 is the y coordinate of one endpoint of the line. x1 is the x coordinate of the other endpoint of the line. y1 is the y coordinate of the other endpoint of the line.
RETURN VALUE
None.
SEE ALSO glPlotDot, glPlotPolygon, glPlotCircle
void glLeft1(int left, int top, int cols, int rows);
Scrolls byte-aligned window left one pixel, right column is filled by current pixel type (color).
PARAMETERS
left is the top left corner of bitmap, must be evenly divisible by 8, otherwise truncates. top is the top left corner of the bitmap. cols is the number of columns in the window, must be evenly divisible by 8, otherwise truncates. rows is the number of rows in the window.
RETURN VALUE
None.
SEE ALSO glHScroll, glRight1
88
MiniCom (OP6800)
void glRight1(int left, int top, int cols, int rows);
Scrolls byte-aligned window right one pixel, left column is filled by current pixel type (color).
PARAMETERS
left is the top left corner of bitmap, must be evenly divisible by 8, otherwise truncates. top is the top left corner of the bitmap. cols is the number of columns in the window, must be evenly divisible by 8, otherwise truncates. rows is the number of rows in the window.
RETURN VALUE
None.
SEE ALSO glHScroll, glLeft1
void glUp1(int left, int top, int cols, int rows);
Scrolls byte-aligned window up one pixel, bottom column is filled by current pixel type (color).
PARAMETERS
left is the top left corner of bitmap, must be evenly divisible by 8, otherwise truncates. top is the top left corner of the bitmap. cols is the number of columns in the window, must be evenly divisible by 8, otherwise truncates. rows is the number of rows in the window.
RETURN VALUE
None.
SEE ALSO glVScroll, glDown1
void glDown1(int left, int top, int cols, int rows);
Scrolls byte-aligned window down one pixel, top column is filled by current pixel type (color).
PARAMETERS
left is the top left corner of bitmap, must be evenly divisible by 8, otherwise truncates. top is the top left corner of the bitmap. cols is the number of columns in the window, must be evenly divisible by 8, otherwise truncates. rows is the number of rows in the window.
RETURN VALUE
None.
SEE ALSO glVScroll, glUp1
User's Manual
89
void glHScroll(int left, int top, int cols, int rows, int nPix);
Scrolls right or left, within the defined window by x number of pixels. The opposite edge of the scrolled window will be filled in with white pixels. The window must be byte-aligned. Parameters will be verified for the following: 1. The left and cols parameters will be verified that they are evenly divisible by 8. If not, they will be truncated to a value that is a multiple of 8. 2. Parameters will be checked to verify that the scrolling area is valid. The minimum scrolling area is a width of 8 pixels and a height of one row.
PARAMETERS
left is the top left corner of bitmap, must be evenly divisible by 8. top is the top left corner of the bitmap. cols is the number of columns in the window, must be evenly divisible by 8. rows is the number of rows in the window. nPix is the number of pixels to scroll within the defined window (a negative value will produce a scroll to the left).
RETURN VALUE
None.
SEE ALSO glVScroll
90
MiniCom (OP6800)
void glVScroll(int left, int top, int cols, int rows, int nPix);
Scrolls up or down, within the defined window by x number of pixels. The opposite edge of the scrolled window will be filled in with white pixels. The window must be byte-aligned. Parameters will be verified for the following: 1. The left and cols parameters will be verified that they are evenly divisible by 8. If not, they will be truncated to a value that is a multiple of 8. 2. Parameters will be checked to verify that the scrolling area is valid. The minimum scrolling area is a width of 8 pixels and a height of one row.
PARAMETERS
left is the top left corner of bitmap, must be evenly divisible by 8. top is the top left corner of the bitmap. cols is the number of columns in the window, must be evenly divisible by 8. rows is the number of rows in the window. nPix is the number of pixels to scroll within the defined window (a negative value will produce a scroll up).
RETURN VALUE
None.
SEE ALSO glHScroll
void glXPutBitmap(int left, int top, int width, int height, unsigned long bitmap);
Draws bitmap in the specified space. The data for the bitmap are stored in xmem. This function calls glXPutFastmap automatically if the bitmap is byte-aligned (the left edge and the width are each evenly divisible by 8). Any portion of a bitmap image or character that is outside the LCD display area will be clipped.
PARAMETERS
left is the top left corner of the bitmap. top is the top left corner of the bitmap. width is the width of the bitmap. height is the height of the bitmap. bitmap is the address of the bitmap in xmem.
RETURN VALUE
None.
SEE ALSO glXPutFastmap, glPrintf
User's Manual
91
void glXPutFastmap(int left, int top, int width, int height, unsigned long bitmap);
Draws bitmap in the specified space. The data for the bitmap are stored in xmem. This function is like glXPutBitmap, except that it is faster. The restriction is that the bitmap must be byte-aligned. Any portion of a bitmap image or character that is outside the LCD display area will be clipped.
PARAMETERS
left is the top left corner of the bitmap, must be evenly divisible by 8, otherwise truncates. top is the top left corner of the bitmap. width is the width of the bitmap, must be evenly divisible by 8, otherwise truncates. height is the height of the bitmap. bitmap is the address of the bitmap in xmem.
RETURN VALUE
None.
SEE ALSO glXPutBitmap, glPrintf
int TextWindowFrame(windowFrame *window, fontInfo *pFont, int x, int y, int winWidth, int winHeight)
Defines a text-only display window. This function provides a way to display characters within the text window using only character row and column coordinates. The text window feature provides end-of-line wrapping and clipping after the character in the last column and row is displayed.
NOTE: Execute the TextWindowFrame function before other Text... functions.
PARAMETERS
window is a pointer to the window frame descriptor. pFont is a pointer to the font descriptor. x is the x coordinate of the top left corner of the text window frame. y is the y coordinate of the top left corner of the text window frame. winWidth is the width of the text window frame. winHeight is the height of the text window frame.
RETURN VALUE
0--window frame was successfully created. -1--x coordinate + width has exceeded the display boundary. -2--y coordinate + height has exceeded the display boundary. -3--Invalid winHeight and/or winWidth parameter value.
92
MiniCom (OP6800)
void TextBorderInit(windowFrame *wPtr, int border, char *title);
This function initializes the window frame structure with the border and title information.
NOTE: Execute the TextWindowFrame function before using this function.
PARAMETERS
wPtr is a pointer to the window frame descriptor. border is the border style: SINGLE_LINE--The function will draw a single-line border around the text window. DOUBLE_LINE--The function will draw a double-line border around the text window. title is a pointer to the title information: If a NULL string is detected, then no title is written to the text menu. If a string is detected, then it will be written center-aligned to the top of the text menu box.
RETURN VALUE
None.
SEE ALSO TextBorder, TextGotoXY, TextPutChar, TextWindowFrame, TextCursorLocation
void TextBorder(windowFrame *wPtr);
This function displays the border for a given window frame. This function will automatically adjust the text window parameters to accommodate the space taken by the text border. This adjustment will only occur once after the TextBorderInit function executes.
NOTE: Execute the TextWindowFrame function before using this function.
PARAMETERS
wPtr is a pointer to the window frame descriptor.
RETURN VALUE
None.
SEE ALSO TextBorderInit, TextGotoXY, TextPutChar, TextWindowFrame, TextCursorLocation
User's Manual
93
void TextGotoXY(windowFrame *window, int col, int row);
Sets the cursor location to display the next character. The display location is based on the height and width of the character to be displayed.
NOTE: Execute the TextWindowFrame function before using this function.
PARAMETERS
window is a pointer to a font descriptor. col is a character column location. row is a character row location.
RETURN VALUE
None.
SEE ALSO TextPutChar, TextPrintf, TextWindowFrame
void TextCursorLocation(windowFrame *window, int *col, int *row);
Gets the current cursor location that was set by a Graphic Text... function.
NOTE: Execute the TextWindowFrame function before using this function.
PARAMETERS
window is a pointer to a font descriptor. col is a pointer to cursor column variable. row is a pointer to cursor row variable.
RETURN VALUE
Lower word = Cursor Row location Upper word = Cursor Column location
SEE ALSO TextGotoXY, TextPrintf, TextWindowFrame, TextCursorLocation
94
MiniCom (OP6800)
void TextPutChar(struct windowFrame *window, char ch);
Displays a character on the display where the cursor is currently pointing. Once a character is displayed, the cursor will be incremented to the next character position. If any portion of a bitmap character is outside the LCD display area, the character will not be displayed.
NOTE: Execute the TextWindowFrame function before using this function.
PARAMETERS
*window is a pointer to a font descriptor. ch is a character to be displayed on the LCD.
RETURN VALUE
None.
SEE ALSO TextGotoXY, TextPrintf, TextWindowFrame, TextCursorLocation
void TextPrintf(struct windowFrame *window, char *fmt, ...);
Prints a formatted string (much like printf) on the LCD screen. Only printable characters in the font set are printed; escape sequences '\r' and '\n' are also recognized. All other escape sequences will be skipped over; for example, '\b' and \'t' will cause nothing to be displayed. The text window feature provides end-of-line wrapping and clipping after the character in the last column and row is displayed. The cursor then remains at the end of the string.
NOTE: Execute the TextWindowFrame function before using this function.
PARAMETERS
window is a pointer to a font descriptor. *fmt is a formatted string. ... are formatted string conversion parameter(s).
EXAMPLE TextPrintf(&TextWindow, "Test %d\n", count); RETURN VALUE
None.
SEE ALSO TextGotoXY, TextPutChar, TextWindowFrame, TextCursorLocation
User's Manual
95
int TextMaxChars(windowFrame *wPtr);
This function returns the maximum number of characters that can be displayed within the text window.
NOTE: Execute the TextWindowFrame function before using this function.
PARAMETERS
wPtr is a pointer to the window frame descriptor.
RETURN VALUE
The maximum number of characters that can be displayed within the text window.
SEE ALSO TextGotoXY, TextPrintf, TextWindowFrame, TextCursorLocation
void TextWinClear(windowFrame *wPtr);
This functions clears the entire area within the specified text window.
NOTE: Execute the TextWindowFrame function before using this function.
PARAMETERS
wPtr is a pointer to the window frame descriptor.
RETURN VALUE
None.
SEE ALSO TextGotoXY, TextPrintf, TextWindowFrame, TextCursorLocation
96
MiniCom (OP6800)
D.5.1 Keypad The functions used to control the keypad are in the KEYPAD7.LIB library located in the Dynamic C LIB\KEYPADS library folder.
void keyInit(void);
Initializes keypad process
RETURN VALUE
None.
SEE ALSO brdInit
void keyConfig(char cRaw, char cPress, char cRelease, char cCntHold, char cSpdLo, char cCntLo, char cSpdHi);
Assigns each key with key press and release codes, and hold and repeat ticks for auto repeat and debouncing.
PARAMETERS
cRaw is a raw key code index. 1 x 7 keypad matrix with raw key code index assignments (in brackets): [0] [4] User Keypad Interface cPress is a key press code An 8-bit value is returned when a key is pressed. 0 = Unused. See keypadDef() for default press codes. cRelease is a key release code. An 8-bit value is returned when a key is pressed. 0 = Unused. cCntHold is a hold tick, which is approximately one debounce period or 5 s. How long to hold before repeating. 0 = No Repeat. cSpdLo is a low-speed repeat tick, which is approximately one debounce period or 5 s. How many times to repeat. 0 = None. cCntLo is a low-speed hold tick, which is approximately one debounce period or 5 s. How long to hold before going to high-speed repeat. 0 = Slow Only. [1] [5] [2] [6] [3]
User's Manual
97
cSpdHi is a high-speed repeat tick, which is approximately one debounce period or 5 s. How many times to repeat after low speed repeat. 0 = None.
RETURN VALUE
None.
SEE ALSO keyProcess, keyGet, keypadDef
void keyProcess(void);
Scans and processes keypad data for key assignment, debouncing, press and release, and repeat.
NOTE: This function is also able to process an 8 x 8 matrix keypad.
RETURN VALUE
None
SEE ALSO keyConfig, keyGet, keypadDef
char keyGet(void);
Get next keypress.
RETURN VALUE
The next keypress, or 0 if none
SEE ALSO keyConfig, keyProcess, keypadDef
int keyUnget(char cKey);
Pushes the value of cKey to the top of the input queue, which is 16 bytes deep.
PARAMETER
cKey
RETURN VALUE
None.
SEE ALSO keyGet
98
MiniCom (OP6800)
void keypadDef();
Configures the physical layout of the keypad with the desired ASCII return key codes. Keypad physical mapping 1 x 7 0 ['L'] ['-'] 4 1 ['U'] ['+'] 5 2 ['D'] ['E'] 6 3 ['R']
where 'L' represents Left Scroll 'U' represents Up Scroll 'D' represents Down Scroll 'R' represents Right Scroll '-' represents Page Down '+' represents Page Up 'E' represents the ENTER key Example: Do the following for the above physical vs. ASCII return key codes.
keyConfig keyConfig keyConfig keyConfig keyConfig keyConfig keyConfig ( ( ( ( ( ( ( 3,'R',0, 6,'E',0, 2,'D',0, 4,'-',0, 1,'U',0, 5,'+',0, 0,'L',0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 0 0 0 0 0 0 ); ); ); ); ); ); );
Characters are returned upon keypress with no repeat.
RETURN VALUE
None.
SEE ALSO keyConfig, keyGet, keyProcess
void keyScan(char *pcKeys);
Writes "1" to each row and reads the value. The position of a keypress is indicated by a zero value in a bit position.
PARAMETER
pcKeys is a pointer to the address of the value read.
RETURN VALUE
None.
SEE ALSO keyConfig, keyGet, keypadDef, keyProcess
User's Manual
99
100
MiniCom (OP6800)
INDEX
B
battery connections ............... 60 board initialization function calls ..................... 72 brdInit ............................ 72 buzzer .................................... 67 debugging features ............ 30 installation ......................... 12 Rabbit Embedded Security Pack ................................ 3 standard features ............... 30 debugging ...................... 30 starting .............................. 12 telephone-based technical support ...................... 3, 31 upgrades and patches ........ 31
J
jumper configurations ........... 54 Demonstration Board buzzer ................................... 67 JP1 (RS-485 bias and termination resistors) .......... 20, 54 jumper locations ................ 54
C
CE compliance ........................ 4 design guidelines ................. 5 chip select circuit .................. 62 clock doubler ........................ 24 connections Ethernet cable ................... 37 programming cable ........... 11 contrast .................................. 10
K
keypad function calls keyConfig ...................... 97 keyGet ........................... 98 keyInit ........................... 97 keypadDef ..................... 99 keyProcess ..................... 98 keyScan ......................... 99 keyUnget ....................... 98 keypad template .................... 27 removing and inserting label ................................. 28
E
EMI spectrum spreader feature . 25 Ethernet cables ...................... 37 Ethernet connections ............. 37 steps .................................. 37 Ethernet port ......................... 22 handling EMI and noise .... 22 pinout ................................ 22 exclusion zone ...................... 51
D
Demonstration Board mounting and installation .. 69 pinout ................................ 68 prototyping area ................ 68 wire assembly ..................... 2 demonstration program ......... 10 digital I/O function calls digIn .............................. 73 digOut ........................... 73 SMODE0 .......................... 21 SMODE1 .......................... 21 digital inputs ......................... 17 remote keypad operation ... 17 switching threshold ........... 17 digital outputs ....................... 18 dimensions Demonstration Board ........ 64 LCD/keypad template ....... 27 OP6800 ............................. 50 Dynamic C ........................ 3, 30 add-on modules ............. 3, 31 changing programming baud rate in BIOS .................. 12
User's Manual
F
features .................................... 1 flash memory liefetime write cycles ........ 29 using second 256K flash memory ......................... 29 flash memory bank select ..... 26 font and bitmap converter ..... 32
L
LCD display function calls glBackLight ................... 77 glBlankRegion .............. 79 glBlankScreen ............... 78 glBlock .......................... 80 glBuffLock .................... 86 glBuffUnlock ................ 86 glDispOnOff ................. 77 glDown1 ........................ 89 glFastFillRegion ............ 79 glFillCircle .................... 82 glFillPolygon ................. 82 glFillRegion .................. 78 glFillScreen ................... 78 glFillVPolygon .............. 81 glFontCharAddr ............ 83 glGetBrushType ............ 87 glGetPfStep ................... 84
101
H
headers JP1 ..................................... 20
I
I/O address assignments ....... 57 installation guidelines ........... 45 introduction ............................. 1 IP addresses how to set .......................... 39 how to set PC IP address ... 40
LCD display function calls (continued) glHScroll .......................90 glInit ..............................77 glLeft1 ...........................88 glPlotCircle ....................82 glPlotDot .......................88 glPlotLine ......................88 glPlotPolygon ................81 glPlotVPolygon .............80 glPrintf ...........................85 glPutChar .......................85 glPutFont .......................84 glRight1 .........................89 glSetBrushType .............86 glSetContrast .................78 glSetPfStep ....................84 glSwap ...........................86 glUp1 .............................89 glVScroll .......................91 glXFontInit ..............32, 83 glXGetBitmap ...............87 glXGetFastmap ..............87 glXPutBitmap ..........32, 91 glXPutFastmap ..............92 ledOut ............................76 TextBorder .....................93 TextBorderInit ...............93 TextCursorLocation .......94 TextGotoXY ..................94 TextMaxChars ...............96 TextPrintf .......................95 TextPutChar ...................95 TextWinClear ................96 TextWindowFrame ........92 LCD/keypad module contrast adjustment ............10 keypad template .................27 removing and inserting keypad label ...............................28
P
pin 1 locations .......................50 pinout Demonstration Board ........68 Ethernet port ......................22 OP6800 headers ................16 power distribution .................65 power management ...............59 power supply ...................59, 65 backup battery circuit ........60 battery backup ...................60 chip select circuit ...............62 connections ..........................9 power distribution .............65 switching voltage regulator 59 VRAM switch ...................61 power-up demonstration program .....10 programming flash vs. RAM ...................29 programming cable ..............2 programming port ..............21 programming cable .................2 connections ........................11 PROG connector ...............23 programming port .................21
R
Rabbit 2000 parallel ports ......................55 remote keypad operation .......17 reset .........................................9 hardware ..............................9 reset generator ...................61 RS-232 ..................................19 RS-485 ..................................19 RS-485 network ....................20 termination and bias resistors ................................20
M
memory .................................26 models .....................................2 OP6800 ................................2 OP6810 ................................2 mounting and installation Demonstration Board ........69 OP6800 ........................46, 47
S
sample programs ...................33 BOARD_ID.C ...................33 Demonstration Board ........13 BUZZER.C ....................33 KEYPAD.C ...................33 SWITCHES.C ...............33 digital I/O DIGIN.C ........................34 DIGOUT.C ....................34 how to set IP address .........39 ICOMDEMO.C .................10
O
OP6800 introduction .........................1
LCD/keypad module .........34 ALPHANUN.C .............34 COFTERMA.C ..............34 DISPPONG.C ................34 DKADEMO1.C .............34 FUN.C .....................10, 34 KEYBASIC.C ...............35 KEYMENU.C ...............35 LED.C ............................35 SCROLLING.C .............35 TEXT.C .........................35 LCD/keypad module (with TCP/IP) MBOXDEMO.C ............42 TCP_RESPOND.C ........42 TCPSEND.C ..................42 OP6800 features ................13 PONG.C ............................13 power-up demonstration program .........................10 serial communication MASTER.C ...................34 PUTS.C ..........................34 RELAYCHR.C ..............34 SLAVE.C ......................34 TCP/IP .........................35, 39 PINGME.C ....................41 SSI.C ..............................41 TELNET.C ....................41 serial communication ............19 function calls flow control ...................74 serCflowcontrolOff ....74 serCflowcontrolOn ....74 ser485Rx ........................75 ser485Tx ........................74 serMode .........................74 programming port ..............21 RS-232 description ............19 RS-485 description ............19 RS-485 network ................20 RS-485 termination and bias resistors .........................20 serial ports Ethernet port ......................22 setup ........................................7 power supply connections ...9 programming cable connections ...............................11 remove RabbitCore module ..................................11
102
MiniCom (OP6800)
software ................................... 3 libraries ............................. 36 keypad ........................... 36 LCD display .................. 36 OP68xx.LIB .................. 36 PACKET.LIB ................ 74 RS232.LIB .................... 74 TCP/IP ........................... 36 USE_2NDFLASH_CODE 29 using second 256K flash memory ......................... 29 specifications Demonstration Board dimensions .................... 64 electrical ........................ 64 mechanical .................... 64 temperature .................... 64 OP6800 dimensions .................... 50 electrical ........................ 52 exclusion zone ............... 51 mechanical .................... 52 temperature .................... 52 spectrum spreader ................. 25 subsystems ............................ 15
T
TCP/IP connections .............. 37 10Base-T Ethernet card .... 37 additional resources .......... 43 Ethernet hub ...................... 37 steps .................................. 37 Tool Kit ................................... 2 AC adapter .......................... 2 DC power supply ................ 2 programming cable ............. 2 User's Manual ..................... 2 wire assembly ..................... 2
U
USB/serial port converter ..... 11 Dynamic C settings ........... 12
User's Manual
103
104
MiniCom (OP6800)
SCHEMATICS
090-0134 OP6800 Schematic
www.rabbit.com/documentation/schemat/090-0134.pdf
090-0120 RCM2200 Schematic
www.rabbit.com/documentation/schemat/090-0120.pdf
090-0119 RCM2300 Schematic
www.rabbit.com/documentation/schemat/090-0119.pdf
090-0140 OP6800 Demonstration Board Schematic
www.rabbit.com/documentation/schemat/090-0140.pdf
090-0128 Programming Cable Schematic
www.rabbit.com/documentation/schemat/090-0128.pdf
You may use the URL information provided above to access the latest schematics directly.
User's Manual
105


▲Up To Search▲   

 
Price & Availability of 101-0500

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X